Hello. I am new to Dash and still figuring this out. I loaded a CSV file and tried generating a pie chart for columns “Industry” and “Percentage” driven by the Client column:
So what i want to do is like i pick from drop down:Client
Then Pie Chart generate report for Industry and Percentage.
This is my code…it runs but no Pie-.
I know am doing something wrong but can quite figure it out. Please i really like need help.
Thanks alot!
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objs as go
df = pd.read_csv(‘C:/Users/user/Desktop/Programs/machine Learning/Motor.csv’,encoding = “utf8”)
df.reset_index(drop=True)
print (df)
app = dash.Dash()
app.config.supress_callback_exceptions = True
available_indicators = df['Client '].unique()
app.layout = html.Div([
html.Div([
dcc.Dropdown(
id='crossfilter-xaxis-column',
options=[{'label': i, 'value': i} for i in available_indicators],value='ABB'),
], style={'width': '10%', 'display': 'inline-block'}),
html.Div([
dcc.Graph(
id='crossfilter-indicator-pie')
], style={'width': '60%', 'display': 'inline-block'})
])
@app.callback(
dash.dependencies.Output(‘crossfilter-indicator-pie’, ‘figure’),
[dash.dependencies.Input(‘crossfilter-xaxis-column’, ‘value’)])
def display_content(client_name):
dff = df[df['Client '] == client_name]
piedata = go.Pie(labels=dff[‘Industry’],values=dff[‘Percentage’])
return {
‘data’:[piedata],
‘layout’: {‘height’: 250,‘margin’: {‘l’: 20, ‘b’: 30, ‘r’: 10, ‘t’: 10}}
}
if name == ‘main’:
app.run_server(
debug=False,
host=‘127.0.0.1’,
port=8050
)