import dash
from dash import html, dcc
import plotly.express as px
import pandas as pd
from dash import dash_table
from dash.dependencies import Input, Output
quarter_hourly_agg_routes_df = pd.read_csv('aggregated_travel_times_2024-05-19_to_2024-05-20.csv')
# Initialize the app
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.Dropdown(
id='route-selector',
options=[{'label': i, 'value': i} for i in quarter_hourly_agg_routes_df['name'].unique()],
value='route1'
),
dcc.Graph(id='time-graph'),
dash_table.DataTable(id='table')
])
@app.callback(
[Output('time-graph', 'figure'),
Output('table', 'data')],
[Input('route-selector', 'value')]
)
def update_graph(selected_route):
filtered_df = quarter_hourly_agg_routes_df[quarter_hourly_agg_routes_df['name'] == selected_route]
fig = px.line(filtered_df, x='updateTime', y=['time', 'historicTime'], title='Travel Time Comparison')
data = filtered_df.to_dict('records')
return fig, data
if __name__ == '__main__':
app.run_server(debug=True)