We’re excited to announce a collaboration between Plotly and Maven Analytics on the Holiday Season App Challenge: exploring data on daily ridership for the Metropolitan Transportation Authority (MTA)!
We challenge the community to create a Dash app that illustrates post-pandemic ridership recovery trends across the MTA’s services.
To learn more about the data and get the most recent daily ridership activity, see NYC.Data.Gov
The winning apps will be judged according to the following categories:
- Illustration of post-pandemic ridership recovery trends across the MTA’s services
- App UI/UX Design
- Creative usage of Plotly graphs
- Bonus points for integration of LLMs to gain more data insight
Please submit your app as a new post in this thread. Please include a link to the app if possible, code on GitHub, and a short description of the app. We encourage you to also submit your Dash app to the Maven Analytics challenge because they are offering a prize for the best entry that uses Dash.
The submission deadline is the end of the day Sunday, December 1, 2024.
The winners will be announced in December and will receive a reward of: $125 for first place, $75 for second, and $50 for third place.
Let’s show the world the power of Plotly!
Sample app to help you get started:
Code for sample app:
from dash import Dash, dcc, callback, Output, Input
import plotly.express as px
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/refs/heads/master/MTA_Ridership_by_DATA_NY_GOV.csv")
app = Dash()
app.layout = [
dcc.Dropdown(options=[{'label':'Subway %', 'value':'Subways: % of Comparable Pre-Pandemic Day'},
{'label':'Bus %', 'value': 'Buses: % of Comparable Pre-Pandemic Day'}],
value='Subways: % of Comparable Pre-Pandemic Day',
clearable=False,
id='column-selected'
),
dcc.Graph(id='my-graph')
]
@callback(
Output('my-graph','figure'),
Input('column-selected', 'value')
)
def update_graph(col_slctd):
fig = px.bar(df, x="Date", y=col_slctd)
fig.update_layout(xaxis_title=None)
fig.update_traces(marker_color="green")
fig.add_vline(x="03/11/2020", line_width=1, line_dash="dash", line_color="blue")
fig.add_annotation(x="03/11/2020", y=100,
text="<--- World Health Organization declares a global COVID-19 pandemic.",
showarrow=False,
xshift=220)
return fig
if __name__ == '__main__':
app.run_server(debug=True)