-
-
Save MehaRima/99ca07735c209d32b19d2f1007e295bc to your computer and use it in GitHub Desktop.
Hello, unfortunately I am unable to run the code. I do not understand what the issue there is.
syntax error apparently in line 82 - html.Div([ -# under create an outer division
Application layout
app.layout = html.Div(children=[
# REVIEW2: Dropdown creation
# Create an outer division
html.Div([
# Add an division
html.Div([
# Create an division for adding dropdown helper text for report type
html.Div(
[
html.H2('Report Type:', style={'margin-right': '2em'}),
]
),
# TASK2: Add a dropdown
# Place them next to each other using the division style
], style={'display':'flex'}),
# Add next division
html.Div([
# Create an division for adding dropdown helper text for choosing year
html.Div(
[
html.H2('Choose Year:', style={'margin-right': '2em'})
]
),
dcc.Dropdown(id='input-year',
# Update dropdown values using list comphrehension
options=[{'label': i, 'value': i} for i in year_list],
placeholder="Select a year",
style={'width':'80%', 'padding':'3px', 'font-size': '20px', 'text-align-last' : 'center'}),
# Place them next to each other using the division style
], style={'display': 'flex'}),
]),
#####
try to run this...
Import required libraries
Import required libraries
import pandas as pd
import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output, State
import plotly.graph_objects as go
import plotly.express as px
from dash import no_update
Create a dash application
app = dash.Dash(name)
REVIEW1: Clear the layout and do not display exception till callback gets executed
app.config.suppress_callback_exceptions = True
Read the airline data into 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})
List of years
year_list = [i for i in range(2005, 2021, 1)]
"""Compute graph data for creating yearly airline performance report
Function that takes airline data as input and create 5 dataframes based on the grouping condition to be used for plottling charts and grphs.
Argument:
df: Filtered dataframe
Returns:
Dataframes to create graph.
"""
def compute_data_choice_1(df):
# Cancellation Category Count
bar_data = df.groupby(['Month','CancellationCode'])['Flights'].sum().reset_index()
# Average flight time by reporting airline
line_data = df.groupby(['Month','Reporting_Airline'])['AirTime'].mean().reset_index()
# Diverted Airport Landings
div_data = df[df['DivAirportLandings'] != 0.0]
# Source state count
map_data = df.groupby(['OriginState'])['Flights'].sum().reset_index()
# Destination state count
tree_data = df.groupby(['DestState', 'Reporting_Airline'])['Flights'].sum().reset_index()
return bar_data, line_data, div_data, map_data, tree_data
"""Compute graph data for creating yearly airline delay report
This function takes in airline data and selected year as an input and performs computation for creating charts and plots.
Arguments:
df: Input airline data.
Returns:
Computed average dataframes for carrier delay, weather delay, NAS delay, security delay, and late aircraft delay.
"""
def compute_data_choice_2(df):
# Compute delay averages
avg_car = df.groupby(['Month','Reporting_Airline'])['CarrierDelay'].mean().reset_index()
avg_weather = df.groupby(['Month','Reporting_Airline'])['WeatherDelay'].mean().reset_index()
avg_NAS = df.groupby(['Month','Reporting_Airline'])['NASDelay'].mean().reset_index()
avg_sec = df.groupby(['Month','Reporting_Airline'])['SecurityDelay'].mean().reset_index()
avg_late = df.groupby(['Month','Reporting_Airline'])['LateAircraftDelay'].mean().reset_index()
return avg_car, avg_weather, avg_NAS, avg_sec, avg_late
Application layout
app.layout = html.Div(children=[
# TASK1: Add title to the dashboard
# Enter your code below. Make sure you have correct formatting.
html.H2('US Domestic Airline Flights Performance',style={'textAlign':'center','color':'#503d36','font-size':25}),
# REVIEW2: Dropdown creation
# Create an outer division
html.Div([
# Add an division
html.Div([
# Create an division for adding dropdown helper text for report type
html.Div(
[
html.H2('Report Type:', style={'margin-right': '2em'}),
]
),
# TASK2: Add a dropdown
# Enter your code below. Make sure you have correct formatting.
dcc.Dropdown(id='input-type',
# Update dropdown values using list comphrehension
options=[{'label': 'Yearly Airline performance', 'value':'OPT1'},{'label':'Yearly Airline Delay Report','value':'OPT2'}],
placeholder="Select a report type",
style={'width':'80%', 'padding':'3px', 'font-size': '20px', 'text-align-last' : 'center'}),
# Place them next to each other using the division style
], style={'display':'flex'}),
# Add next division
html.Div([
# Create an division for adding dropdown helper text for choosing year
html.Div(
[
html.H2('Choose Year:', style={'margin-right': '2em'})
]
),
dcc.Dropdown(id='input-year',
# Update dropdown values using list comphrehension
options=[{'label': i, 'value': i} for i in year_list],
placeholder="Select a year",
style={'width':'80%', 'padding':'3px', 'font-size': '20px', 'text-align-last' : 'center'}),
# Place them next to each other using the division style
], style={'display': 'flex'}),
]),
# Add Computed graphs
# REVIEW3: Observe how we add an empty division and providing an id that will be updated during callback
html.Div([ ], id='plot1'),
html.Div([
html.Div([ ], id='plot2'),
html.Div([ ], id='plot3')
], style={'display': 'flex'}),
# TASK3: Add a division with two empty divisions inside. See above disvision for example.
# Enter your code below. Make sure you have correct formatting.
html.Div([
html.Div([ ], id='plot4'),
html.Div([ ], id='plot5')
], style={'display': 'flex'})
])
Callback function definition
TASK4: Add 5 ouput components
Enter your code below. Make sure you have correct formatting.
@app.callback([Output(component_id='plot1', component_property='children'),
Output(component_id='plot2', component_property='children'),
Output(component_id='plot3', component_property='children'),
Output(component_id='plot4', component_property='children'),
Output(component_id='plot5', component_property='children')],
[Input(component_id='input-type', component_property='value'),
Input(component_id='input-year', component_property='value')],
# REVIEW4: Holding output state till user enters all the form information. In this case, it will be chart type and year
[State("plot1", 'children'), State("plot2", "children"),
State("plot3", "children"), State("plot4", "children"),
State("plot5", "children")
])
Add computation to callback function and return graph
def get_graph(chart, year, children1, children2, c3, c4, c5):
# Select data
df = airline_data[airline_data['Year']==int(year)]
if chart == 'OPT1':
# Compute required information for creating graph from the data
bar_data, line_data, div_data, map_data,tree_data = compute_data_choice_1(df)
# Number of flights under different cancellation categories
bar_fig = px.bar(bar_data, x='Month', y='Flights', color='CancellationCode', title='Monthly Flight Cancellation')
# TASK5: Average flight time by reporting airline
# Enter your code below. Make sure you have correct formatting.
line_fig = px.line(line_data, x='Month', y='AirTime', color='Reporting_Airline', title='Average monthly flight time(minutes) by airline')
# Percentage of diverted airport landings per reporting airline
pie_fig = px.pie(div_data, values='Flights', names='Reporting_Airline', title='% of flights by reporting airline')
# REVIEW5: Number of flights flying from each state using choropleth
map_fig = px.choropleth(map_data, # Input data
locations='OriginState',
color='Flights',
hover_data=['OriginState', 'Flights'],
locationmode = 'USA-states', # Set to plot as US States
color_continuous_scale='GnBu',
range_color=[0, map_data['Flights'].max()])
map_fig.update_layout(
title_text = 'Number of flights from origin state',
geo_scope='usa') # Plot only the USA instead of globe
# TASK6: Number of flights flying to each state from each reporting airline
# Enter your code below. Make sure you have correct formatting.
tree_fig = px.treemap(tree_data,path=['DestState', 'Reporting_Airline'],values='Flights',color='Flights',color_continuous_scale='RdBu',title='Flight count by airline to destination state')
# REVIEW6: Return dcc.Graph component to the empty division
return [dcc.Graph(figure=tree_fig),
dcc.Graph(figure=pie_fig),
dcc.Graph(figure=map_fig),
dcc.Graph(figure=bar_fig),
dcc.Graph(figure=line_fig)
]
else:
# REVIEW7: This covers chart type 2 and we have completed this exercise under Flight Delay Time Statistics Dashboard section
# Compute required information for creating graph from the data
avg_car, avg_weather, avg_NAS, avg_sec, avg_late = compute_data_choice_2(df)
# Create graph
carrier_fig = px.line(avg_car, x='Month', y='CarrierDelay', color='Reporting_Airline', title='Average carrrier delay time (minutes) by airline')
weather_fig = px.line(avg_weather, x='Month', y='WeatherDelay', color='Reporting_Airline', title='Average weather delay time (minutes) by airline')
nas_fig = px.line(avg_NAS, x='Month', y='NASDelay', color='Reporting_Airline', title='Average NAS delay time (minutes) by airline')
sec_fig = px.line(avg_sec, x='Month', y='SecurityDelay', color='Reporting_Airline', title='Average security delay time (minutes) by airline')
late_fig = px.line(avg_late, x='Month', y='LateAircraftDelay', color='Reporting_Airline', title='Average late aircraft delay time (minutes) by airline')
return[dcc.Graph(figure=carrier_fig),
dcc.Graph(figure=weather_fig),
dcc.Graph(figure=nas_fig),
dcc.Graph(figure=sec_fig),
dcc.Graph(figure=late_fig)]
Run the app
if name == 'main':
app.run_server()
try to run this...
Import required libraries
Import required libraries
import pandas as pd
import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output, State
import plotly.graph_objects as go
import plotly.express as px
from dash import no_updateCreate a dash application
app = dash.Dash(name)
REVIEW1: Clear the layout and do not display exception till callback gets executed
app.config.suppress_callback_exceptions = True
Read the airline data into 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})List of years
year_list = [i for i in range(2005, 2021, 1)]
"""Compute graph data for creating yearly airline performance report
Function that takes airline data as input and create 5 dataframes based on the grouping condition to be used for plottling charts and grphs.
Argument:
df: Filtered dataframe
Returns:
Dataframes to create graph.
"""
def compute_data_choice_1(df):Cancellation Category Count
bar_data = df.groupby(['Month','CancellationCode'])['Flights'].sum().reset_index()
Average flight time by reporting airline
line_data = df.groupby(['Month','Reporting_Airline'])['AirTime'].mean().reset_index()
Diverted Airport Landings
div_data = df[df['DivAirportLandings'] != 0.0]
Source state count
map_data = df.groupby(['OriginState'])['Flights'].sum().reset_index()
Destination state count
tree_data = df.groupby(['DestState', 'Reporting_Airline'])['Flights'].sum().reset_index()
return bar_data, line_data, div_data, map_data, tree_data"""Compute graph data for creating yearly airline delay report
This function takes in airline data and selected year as an input and performs computation for creating charts and plots.
Arguments:
df: Input airline data.Returns:
Computed average dataframes for carrier delay, weather delay, NAS delay, security delay, and late aircraft delay.
"""
def compute_data_choice_2(df):Compute delay averages
avg_car = df.groupby(['Month','Reporting_Airline'])['CarrierDelay'].mean().reset_index()
avg_weather = df.groupby(['Month','Reporting_Airline'])['WeatherDelay'].mean().reset_index()
avg_NAS = df.groupby(['Month','Reporting_Airline'])['NASDelay'].mean().reset_index()
avg_sec = df.groupby(['Month','Reporting_Airline'])['SecurityDelay'].mean().reset_index()
avg_late = df.groupby(['Month','Reporting_Airline'])['LateAircraftDelay'].mean().reset_index()
return avg_car, avg_weather, avg_NAS, avg_sec, avg_lateApplication layout
app.layout = html.Div(children=[
TASK1: Add title to the dashboard
Enter your code below. Make sure you have correct formatting.
html.H2('US Domestic Airline Flights Performance',style={'textAlign':'center','color':'#503d36','font-size':25}),
REVIEW2: Dropdown creation
Create an outer division
html.Div([
Add an division
html.Div([
Create an division for adding dropdown helper text for report type
html.Div(
[
html.H2('Report Type:', style={'margin-right': '2em'}),
]
),TASK2: Add a dropdown
Enter your code below. Make sure you have correct formatting.
dcc.Dropdown(id='input-type',
Update dropdown values using list comphrehension
options=[{'label': 'Yearly Airline performance', 'value':'OPT1'},{'label':'Yearly Airline Delay Report','value':'OPT2'}],
placeholder="Select a report type",
style={'width':'80%', 'padding':'3px', 'font-size': '20px', 'text-align-last' : 'center'}),Place them next to each other using the division style
], style={'display':'flex'}),
# Add next division html.Div([ # Create an division for adding dropdown helper text for choosing year html.Div( [ html.H2('Choose Year:', style={'margin-right': '2em'}) ] ), dcc.Dropdown(id='input-year', # Update dropdown values using list comphrehension options=[{'label': i, 'value': i} for i in year_list], placeholder="Select a year", style={'width':'80%', 'padding':'3px', 'font-size': '20px', 'text-align-last' : 'center'}), # Place them next to each other using the division style ], style={'display': 'flex'}), ]), # Add Computed graphs # REVIEW3: Observe how we add an empty division and providing an id that will be updated during callback html.Div([ ], id='plot1'), html.Div([ html.Div([ ], id='plot2'), html.Div([ ], id='plot3') ], style={'display': 'flex'}), # TASK3: Add a division with two empty divisions inside. See above disvision for example. # Enter your code below. Make sure you have correct formatting. html.Div([ html.Div([ ], id='plot4'), html.Div([ ], id='plot5') ], style={'display': 'flex'}) ])
Callback function definition
TASK4: Add 5 ouput components
Enter your code below. Make sure you have correct formatting.
@app.callback([Output(component_id='plot1', component_property='children'),
Output(component_id='plot2', component_property='children'),
Output(component_id='plot3', component_property='children'),
Output(component_id='plot4', component_property='children'),
Output(component_id='plot5', component_property='children')],
[Input(component_id='input-type', component_property='value'),
Input(component_id='input-year', component_property='value')],REVIEW4: Holding output state till user enters all the form information. In this case, it will be chart type and year
[State("plot1", 'children'), State("plot2", "children"),
State("plot3", "children"), State("plot4", "children"),
State("plot5", "children")
])Add computation to callback function and return graph
def get_graph(chart, year, children1, children2, c3, c4, c5):
# Select data df = airline_data[airline_data['Year']==int(year)] if chart == 'OPT1': # Compute required information for creating graph from the data bar_data, line_data, div_data, map_data,tree_data = compute_data_choice_1(df) # Number of flights under different cancellation categories bar_fig = px.bar(bar_data, x='Month', y='Flights', color='CancellationCode', title='Monthly Flight Cancellation') # TASK5: Average flight time by reporting airline # Enter your code below. Make sure you have correct formatting. line_fig = px.line(line_data, x='Month', y='AirTime', color='Reporting_Airline', title='Average monthly flight time(minutes) by airline') # Percentage of diverted airport landings per reporting airline pie_fig = px.pie(div_data, values='Flights', names='Reporting_Airline', title='% of flights by reporting airline') # REVIEW5: Number of flights flying from each state using choropleth map_fig = px.choropleth(map_data, # Input data locations='OriginState', color='Flights', hover_data=['OriginState', 'Flights'], locationmode = 'USA-states', # Set to plot as US States color_continuous_scale='GnBu', range_color=[0, map_data['Flights'].max()]) map_fig.update_layout( title_text = 'Number of flights from origin state', geo_scope='usa') # Plot only the USA instead of globe # TASK6: Number of flights flying to each state from each reporting airline # Enter your code below. Make sure you have correct formatting. tree_fig = px.treemap(tree_data,path=['DestState', 'Reporting_Airline'],values='Flights',color='Flights',color_continuous_scale='RdBu',title='Flight count by airline to destination state') # REVIEW6: Return dcc.Graph component to the empty division return [dcc.Graph(figure=tree_fig), dcc.Graph(figure=pie_fig), dcc.Graph(figure=map_fig), dcc.Graph(figure=bar_fig), dcc.Graph(figure=line_fig) ] else: # REVIEW7: This covers chart type 2 and we have completed this exercise under Flight Delay Time Statistics Dashboard section # Compute required information for creating graph from the data avg_car, avg_weather, avg_NAS, avg_sec, avg_late = compute_data_choice_2(df) # Create graph carrier_fig = px.line(avg_car, x='Month', y='CarrierDelay', color='Reporting_Airline', title='Average carrrier delay time (minutes) by airline') weather_fig = px.line(avg_weather, x='Month', y='WeatherDelay', color='Reporting_Airline', title='Average weather delay time (minutes) by airline') nas_fig = px.line(avg_NAS, x='Month', y='NASDelay', color='Reporting_Airline', title='Average NAS delay time (minutes) by airline') sec_fig = px.line(avg_sec, x='Month', y='SecurityDelay', color='Reporting_Airline', title='Average security delay time (minutes) by airline') late_fig = px.line(avg_late, x='Month', y='LateAircraftDelay', color='Reporting_Airline', title='Average late aircraft delay time (minutes) by airline') return[dcc.Graph(figure=carrier_fig), dcc.Graph(figure=weather_fig), dcc.Graph(figure=nas_fig), dcc.Graph(figure=sec_fig), dcc.Graph(figure=late_fig)]
Run the app
if name == 'main':
app.run_server()
really helpful..thanks
Hello there! I've been trying to work on the same assignment. Unfortunately, it's not running either... Do you think you could help me? I would be very grateful! Thanks [:)
https://jupyterlab-0-labs-prod-jupyterlab-us-east-1.labs.cognitiveclass.ai/user/gabriellepre/doc/tree/labs/DV0101EN/5_Peer_Graded_Assignment_Questions.ipynb
Hello there! I've been trying to work on the same assignment. Unfortunately, it's not running either... Do you think you could help me? I would be very grateful! Thanks [:)
https://jupyterlab-0-labs-prod-jupyterlab-us-east-1.labs.cognitiveclass.ai/user/gabriellepre/doc/tree/labs/DV0101EN/5_Peer_Graded_Assignment_Questions.ipynb
refer to : https://github.com/kv5uzair/DataVisualizationPython.git
Hi! Could anyone found a solution? when i run the app the console shows me the next error:
dash_renderer.v2_0_0m1631739067.min.js:2 ReferenceError: A nonexistent object was used in an
Input
of a Dash callback. The id of this object isinput-type
and the property isvalue
. The string ids in the current layout are: [...., input-year, plot1, plot2, plot3, plot4, plot5]
at Ri (dash_renderer.v2_0_0m1631739067.min.js:2)
at Ci (dash_renderer.v2_0_0m1631739067.min.js:2)
at Bi (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at tt (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at dash_renderer.v2_0_0m1631739067.min.js:2
at t (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at tryCatch (polyfill@7.v2_0_0m1631739068.12.1.min.js:1)
zn @ dash_renderer.v2_0_0m1631739067.min.js:2
dash_renderer.v2_0_0m1631739067.min.js:2 ReferenceError: A nonexistent object was used in anInput
of a Dash callback. The id of this object isinput-type
and the property isvalue
. The string ids in the current layout are: [...., input-year, plot1, plot2, plot3, plot4, plot5]
at Ri (dash_renderer.v2_0_0m1631739067.min.js:2)
at Ci (dash_renderer.v2_0_0m1631739067.min.js:2)
at Bi (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at tt (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at dash_renderer.v2_0_0m1631739067.min.js:2
at t (dash_renderer.v2_0_0m1631739067.min.js:2)
at dash_renderer.v2_0_0m1631739067.min.js:2
at tryCatch (polyfill@7.v2_0_0m1631739068.12.1.min.js:1)
And doesn't show the graphs. Thanks
SyntaxError: invalid syntax
theia@theiadocker-pkmangat32:/home/project$ python3 5_Peer_Graded_Assignment_Questions.py
File "5_Peer_Graded_Assignment_Questions.py", line 129
@app.callback( [....],
Getting this error.
SyntaxError: invalid syntax theia@theiadocker-pkmangat32:/home/project$ python3 5_Peer_Graded_Assignment_Questions.py File "5_Peer_Graded_Assignment_Questions.py", line 129 @app.callback( [....], Getting this error.
Hi did you ever figure this one out? I am having the same problem..
Hello! great job!
Could you also help with the latest coursera assignment of Data Visualization?
I don't have errors, but only one thing is that dash and all the graghics are not appearing.
It says: * Running on http://localhost:8050/ (Press CTRL+C to quit)
127.0.0.1 - - [18/May/2021 23:41:42] "GET /_alive_b4bbe725-bd71-40a9-8b81-e2a889da19db HTTP/1.1" 200 -
could you help me what to do with that?H Aska-sh, were you able to complete the latest coursera assignment on Data Visualization? Can you please share it with me
You need to write the code properly and make changes if required in the given code or may be some network issue too exist. Hope your answer got solved.
Unfortunately, I am experiencing the same error code on host, can anyone help?
I am having error of importing dash. I am wondering if somebody could help me in this.
Traceback (most recent call last):
File "dash.py", line 2, in
import dash
File "/home/project/dash.py", line 3, in
import dash_html_components as html
File "/home/theia/.local/lib/python3.6/site-packages/dash_html_components/init.py", line 1, in
from dash.html import * # noqa: F401, F403, E402
ModuleNotFoundError: No module named 'dash.html'; 'dash' is not a package
@app.callback([Output(component_id='plot1', component_property='children'),
NameError: name 'Output' is not defined
I'm getting the above error in app.callback
please help
if there is no error pls share that code..!