Plotly-Dash App with Interactive buttons and Dropdown menu

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



Plotly-Dash App with Interactive buttons and Dropdown menu



I am trying to build a Dash app that will support both a drop down menu for each of NY's 27 districts as well as an interactive bar chart. The dataframe looks like this:



enter image description here



I have written the following code:


import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import pandas as pd

# Read in the data
df = districts_change.drop(['TOTAL'], axis=1)

# Get a list of all the districts
districts = districts_change['DISTRICT'].unique()

# Create the app
app = dash.Dash()

# Populate the layout with HTML and graph components
app.layout = html.Div([
html.H2("New York Congressional Districts"),
html.Div(
[
dcc.Dropdown(
id="DISTRICT",
options=[
'label': i,
'value': i
for i in districts],
value='All Districts'),
],
style='width': '25%',
'display': 'inline-block'),
dcc.Graph(id='funnel-graph'),
])


# Add the callbacks to support the interactive componets
@app.callback(
dash.dependencies.Output('funnel-graph', 'figure'),
[dash.dependencies.Input('DISTRICT', 'value')])
def update_graph(Districts):
if District == "All Districts":
df_plot = df.copy()
else:
df_plot = df[df['DISTRICT'] == Districts]

trace1 = go.Bar(x=districts_change['Year'], y=districts_change[('DEM')], name='DEM')
trace2 = go.Bar(x=districts_change['Year'], y=districts_change[('REP')], name='REP')
trace3 = go.Bar(x=districts_change['Year'], y=districts_change[('CON')], name='CON')
trace4 = go.Bar(x=districts_change['Year'], y=districts_change[('WOR')], name='WOR')
trace5 = go.Bar(x=districts_change['Year'], y=districts_change[('IND')], name='IND')
trace6 = go.Bar(x=districts_change['Year'], y=districts_change[('GRE')], name='GRE')
trace7 = go.Bar(x=districts_change['Year'], y=districts_change[('WEP')], name='WEP')
trace8 = go.Bar(x=districts_change['Year'], y=districts_change[('REF')], name='REF')
trace9 = go.Bar(x=districts_change['Year'], y=districts_change[('OTH')], name='OTH')
trace10 = go.Bar(x=districts_change['Year'], y=districts_change[('BLANK')], name='BLANK')


return
'data': [trace1, trace2, trace3, trace4, trace5,
trace6, trace7, trace8, trace9, trace10],
'layout':
go.Layout(
title='District '.format(Districts),
barmode='group')



if __name__ == '__main__':
app.server.run(port=8000, host='127.0.0.1')



The app runs locally and displays the drop down menu, however, it is not broadcasting the data itself.









By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Firebase Auth - with Email and Password - Check user already registered

Dynamically update html content plain JS

How to determine optimal route across keyboard