Created
July 27, 2023 12:27
-
-
Save kururu-abdo/4b64494a41a14f6889ee1b89c5b71439 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Import required libraries | |
import pandas as pd | |
import plotly.graph_objects as go | |
import dash | |
import dash_html_components as html | |
import dash_core_components as dcc | |
from dash.dependencies import Input, Output | |
# Read the airline data into the pandas dataframe | |
airline_data = pd.read_csv('https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DV0101EN-SkillsNetwork/Data%20Files/airline_data.csv', | |
encoding = "ISO-8859-1", | |
dtype={'Div1Airport': str, 'Div1TailNum': str, | |
'Div2Airport': str, 'Div2TailNum': str}) | |
# Create a dash application | |
app = dash.Dash(__name__) | |
app.layout = html.Div(children=[ html.H1('Airline Performance Dashboard',style={'textAlign': 'center', 'color': '#503D36', 'font-size': 40}), | |
html.Div(["Input Year: ", dcc.Input(id='input-year', value='2010', | |
type='number', style={'height':'50px', 'font-size': 35}),], | |
style={'font-size': 40}), | |
html.Br(), | |
html.Br(), | |
html.Div(dcc.Graph(id='line-plot')), | |
]) | |
# add callback decorator | |
@app.callback( Output(component_id='line-plot', component_property='figure'), | |
Input(component_id='input-year', component_property='value')) | |
# Add computation to callback function and return graph | |
def get_graph(entered_year): | |
# Select 2019 data | |
df = airline_data[airline_data['Year']==int(entered_year)] | |
# Group the data by Month and compute average over arrival delay time. | |
line_data = df.groupby('Month')['ArrDelay'].mean().reset_index() | |
fig = go.Figure(data=go.Scatter(x=line_data['Month'], y=line_data['ArrDelay'], mode='lines', marker=dict(color='green'))) | |
fig.update_layout(title='Month vs Average Flight Delay Time', xaxis_title='Month', yaxis_title='ArrDelay') | |
return fig | |
# Run the app | |
if __name__ == '__main__': | |
app.run_server() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment