Я новичок в Plotly.Я пытаюсь нарисовать гистограмму с помощью фильтров.Это мой код, в котором значения категории и страны являются входными:
categories = df.Category.unique()
countries = df.CountryName.unique()
#Configure Layout
app.layout = html.Div([
html.Div([
dcc.Dropdown(
id='category',
options=[{'label': i.title(), 'value': i} for i in categories],
value='Category'
)
],
style={'width': '48%', 'display': 'inline-block'}),
html.Div([
dcc.Dropdown(
id='country',
options=[{'label': i.title(), 'value': i} for i in countries],
value='CountryName'
)
],style={'width': '48%', 'float': 'right', 'display': 'inline-block'}),
dcc.Graph(id='feature-graphic')
], style={'padding':10})
app.callback(
Output('feature-graphic', 'figure'),
[Input('category', 'value'),
Input('country', 'value')])
def update_graph(category, country):
return {
'data': [go.Bar(
x=df['SegmentName'],
y=df[(df['Category']==category)&(df['Country']==country)]['Points'],
text=df['Category'],
) for category in df['Category']],
'layout': go.Layout(
xaxis={'title': 'SegmentName'},
yaxis={'title': 'Points'},
margin={'l': 40, 'b': 40, 't': 10, 'r': 0},
orientation='h',
barmode='stack',
hovermode='closest'
)
}
if __name__ == '__main__':
app.run_server(debug=True)
Мой фрейм данных имеет столбцы: SegmentName (самое низкое, низкое, среднее и высшее), CountryName, категория (еда, напитки, транспорт)...) и очки.Я хотел бы представить столбец с накоплением для каждого имени сегмента с помощью точки по категориям (каждая категория с другим цветом)
Я получаю панель управления с меню страны и категории, но когда я выбираю эти значения, я нене получается получить график.
Кто-нибудь знает, как решить эту проблему?
Заранее спасибо!