Hi @matsujju,
Thank you.
Yes, it shows old graph from previous code. In the new code, I am using new data frame, and changed the required labels.
Old code:
import pandas as pd
import plotly.express as px # (version 4.7.0)
import plotly.graph_objects as go
import dash # (version 1.12.0) pip install dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(name)
------------------------------------------------------------------------------
Import and clean data (importing csv into pandas)
df = pd.read_csv(“intro_bees.csv”)
df = df.groupby([‘State’, ‘ANSI’, ‘Affected by’, ‘Year’, ‘state_code’])[[‘Pct of Colonies Impacted’]].mean()
df.reset_index(inplace=True)
print(df[:5])
------------------------------------------------------------------------------
App layout
app.layout = html.Div([
html.H1("Web Application Dashboards with Dash", style={'text-align': 'center'}),
dcc.Dropdown(id="slct_year",
options=[
{"label": "2015", "value": 2015},
{"label": "2016", "value": 2016},
{"label": "2017", "value": 2017},
{"label": "2018", "value": 2018}],
multi=False,
value=2015,
style={'width': "30%"}
),
html.Div(id='output_container', children=[]),
html.Br(),
dcc.Graph(id='my_bee_map', figure={})
])
------------------------------------------------------------------------------
Connect the Plotly graphs with Dash Components
@app.callback(
[Output(component_id=‘output_container’, component_property=‘children’),
Output(component_id=‘my_bee_map’, component_property=‘figure’)],
[Input(component_id=‘slct_year’, component_property=‘value’)]
)
def update_graph(option_slctd):
print(option_slctd)
print(type(option_slctd))
container = "The year chosen by user was: {}".format(option_slctd)
dff = df.copy()
dff = dff[dff["Year"] == option_slctd]
dff = dff[dff["Affected by"] == "Varroa_mites"]
# Plotly Express
fig = px.choropleth(
data_frame=dff,
locationmode='USA-states',
locations='state_code',
scope="usa",
color='Pct of Colonies Impacted',
hover_data=['State', 'Pct of Colonies Impacted'],
color_continuous_scale=px.colors.sequential.YlOrRd,
labels={'Pct of Colonies Impacted': '% of Bee Colonies'},
template='plotly_dark'
)
app.scripts.config.serve_locally = True
app.css.config.serve_locally = True
# Plotly Graph Objects (GO)
# fig = go.Figure(
# data=[go.Choropleth(
# locationmode='USA-states',
# locations=dff['state_code'],
# z=dff["Pct of Colonies Impacted"].astype(float),
# colorscale='Reds',
# )]
# )
#
# fig.update_layout(
# title_text="Bees Affected by Mites in the USA",
# title_xanchor="center",
# title_font=dict(size=24),
# title_x=0.5,
# geo=dict(scope='usa'),
return container, fig
------------------------------------------------------------------------------
if name == ‘main’:
app.run_server(debug=False)
New Code:
import pandas as pd
import plotly.express as px # (version 4.7.0)
import plotly.graph_objects as go
import dash # (version 1.12.0) pip install dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(name)
------------------------------------------------------------------------------
Import and clean data (importing csv into pandas)
EPMdf = pd.read_csv(“EPM_Flash.csv”,encoding=‘latin-1’)
EPMdf = EPMdf.groupby([‘Vertical’,‘state_code’,‘State’])[[‘Net Revenue’]].sum()
EPMdf.reset_index(inplace=True)
print(EPMdf[:5])
#EPMdf1=EPMdf.groupby([‘state_code’,‘State’])[[‘Net Revenue’]].sum()
#EPMdf1.reset_index(inplace=True)
#print(EPMdf1[:5])
------------------------------------------------------------------------------
App layout
app.layout = html.Div([
html.H1("EPM Net Revenue Dashborad for 2018", style={'text-align': 'center'}),
dcc.Dropdown(id="slct_vertical",
options=[
{"label": "BFS", "value": 'BFS'},
{"label": "CMT", "value": 'CMT'},
{"label": "HC", "value": 'HC'},
{"label": "INS", "value": "INS"},
{"label": "LS", "value": "LS"},
{"label": "MLEU", "value": "MLEU"},
{"label": "RCG", "value": "RCG"},
{"label": "RHCG", "value": "RHCG"},
{"label": "T&H", "value": "T&H"}],
multi=False,
value="RCG",
style={'width': "40%"}
),
html.Div(id='output_container', children=[]),
html.Br(),
dcc.Graph(id='my_net_rev_map', figure={})
])
------------------------------------------------------------------------------
Connect the Plotly graphs with Dash Components
@app.callback(
[Output(component_id=‘output_container’, component_property=‘children’),
Output(component_id=‘my_net_rev_map’, component_property=‘figure’)],
[Input(component_id=‘slct_vertical’, component_property=‘value’)]
)
def update_graph(option_slctd):
print(option_slctd)
print(type(option_slctd))
container = "The vertical chosen by user was: {}".format(option_slctd)
dff = EPMdf.copy()
dff = dff[dff["Vertical"] == option_slctd]
# Plotly Express
fig = px.choropleth(
data_frame=dff,
locationmode='USA-states',
locations='state_code',
scope="usa",
color='Net Revenue',
hover_data=['State', 'Net Revenue'],
color_continuous_scale=px.colors.sequential.YlOrRd,
labels={'Net Revenue': 'Total Net Revenue'},
template='plotly_dark'
)
app.scripts.config.serve_locally = True
app.css.config.serve_locally = True
# Plotly Graph Objects (GO)
# fig = go.Figure(
# data=[go.Choropleth(
# locationmode='USA-states',
# locations=dff['state_code'],
# z=dff["Pct of Colonies Impacted"].astype(float),
# colorscale='Reds',
# )]
# )
#
# fig.update_layout(
# title_text="Bees Affected by Mites in the USA",
# title_xanchor="center",
# title_font=dict(size=24),
# title_x=0.5,
# geo=dict(scope='usa'),
# )
return container, fig
------------------------------------------------------------------------------
if name == ‘main’:
app.run_server(debug=False)
Thank you.
Sri M.