多值下拉的回调

Callback for multivalue dropdown

我是 Plotly Dash 的新手,一直在努力解决多值下拉回调问题,非常感谢任何帮助。基本上我已经按照教程创建了一个饼图,如果选择了一个支柱(来自我的数据)值。我想实现两件事:

  1. 默认或初始图表应显示所有支柱和项目数量
  2. 多选柱值

我的主要问题实际上是为这些创建回调。预先感谢您的帮助!!

这是我的代码

app = dash.Dash(__name__)

all = df.Pillar.unique()

app.layout=html.Div([
   html.H1("PM dashboard"),
   dcc.Dropdown(id='pillar-choice',
             options=[{'label':x, 'value':x}
                      for x in all],
             value='Service Provider',
             multi=False),
   dcc.Graph(id='my-graph',
          figure={}),
])
@app.callback(
       Output(component_id='my-graph', component_property='figure'),
    Input(component_id='pillar-choice', component_property='value')

)
def interactive_graphs(value_pillar):
        print(value_pillar)
        dff = df[df.Pillar==value_pillar]
        fig = px.pie(data_frame=dff, names='Pillar', values='Project No')
        return fig
    
if __name__=='__main__':
    app.run_server()

我认为这里的问题是 value_pillar 将是一个列表,因此您需要执行以下操作:

dff = df[df.Pillar.isin(value_pillar)]

如果您想默认显示所有内容,则需要检查该参数的值是否为您的默认值,如果它与默认值匹配,则避免过滤。