Spaces:
Sleeping
Sleeping
from dash import Dash, html, dcc, Input, Output | |
import pandas as pd | |
import plotly.express as px | |
# # Load the dataset | |
df = pd.read_parquet('cincinnati_traffic_crash_data__cpd.parquet') | |
# Preprocess the data | |
df_grouped = df.groupby('SNA_NEIGHBORHOOD')['DATECRASHREPORTED'].count().reset_index() | |
df_grouped.columns = ['Neighborhood', 'Total Crashes'] | |
# Initialize the Dash app | |
app = Dash(__name__) | |
server = app.server | |
# Create a bar chart | |
fig = px.bar(df_grouped, x='Neighborhood', y='Total Crashes', title='Total Traffic Crashes by Neighborhood in Cincinnati') | |
# Define the layout of the app | |
app.layout = html.Div(children=[ | |
html.H1(children='Cincinnati Traffic Crashes Dashboard'), | |
html.Div(children='''Dash: A web application framework for your data.'''), | |
dcc.Dropdown( | |
id='neighborhood-dropdown', | |
options=[{'label': n, 'value': n} for n in df_grouped['Neighborhood']], | |
value=df_grouped['Neighborhood'][0] | |
), | |
dcc.Graph( | |
id='example-graph', | |
figure=fig | |
) | |
]) | |
# Callback to update graph based on dropdown selection | |
def update_graph(selected_neighborhood): | |
filtered_df = df_grouped[df_grouped['Neighborhood'] == selected_neighborhood] | |
fig = px.bar(filtered_df, x='Neighborhood', y='Total Crashes', title=f'Total Traffic Crashes in {selected_neighborhood}') | |
return fig | |
# Run the app | |
if __name__ == '__main__': | |
app.run(debug=True, port=8051) | |