我是Plotly的新手。我正在尝试使用过滤器绘制条形图。这是我的代码,其中输入了Category和Country的值:
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,类别(食品,饮料,运输...)和点。 我想用按类别(每个类别都有不同的颜色)的磅数来表示每个SegmentName的堆叠条形
我得到了一个带有国家和类别菜单的仪表板,但是当我选择这些值时我什么也没有得到。
有人知道如何解决这个问题吗?
谢谢!