Py.Cafe

asafnb/

travel-time-comparison

Travel Time Comparison Tool

DocsPricing
  • aggregated_travel_times_2024-05-19_to_2024-05-20.csv
  • app.py
  • requirements.txt
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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)