【问题标题】:Setting a Plotly Dash dcc.dropdown value dynamically动态设置 Plotly Dash dcc.dropdown 值
【发布时间】:2023-03-05 21:24:01
【问题描述】:

我正在使用以下方法动态构建一个绘图 Dash dcc.dropdown 列表:

def BuildOptions(DataFrameSeries, AddAll):  
    OptionList = [{'label': i, 'value': i} for i in DataFrameSeries.unique()]
    if AddAll == 1:       
        OptionList.insert(0,{'label': 'All', 'value': 'All'})          
    return OptionList

它使用df 系列中的唯一值,并将“全部”插入选项列表。我现在想将(默认)值设置为“全部”(如果存在)或 K/V 对列表中的 [0] 项。

    html.Div([
            dcc.Dropdown(
                id='Prov_DD',                    
                options=BuildOptions(data.TASKPROVINCE,1),
               # value=data.TASKPROVINCE[0],
               # value=dcc.Dropdown.value[0],
                 value='All'  # this works for those list that have 'All' 
                              # but I want [0] item   
                multi=True
            )],className='two columns'
            ),

按索引将dcc 下拉设置到键值对选项列表中的某个项目的任何方式?

【问题讨论】:

    标签: python plotly-dash


    【解决方案1】:

    您应该定义一个 options_array。然后使用该数组填充下拉选项和值参数。定义数组后,您可以通过索引从预定义数组 (options_array) 中选择默认值。

    options_array = BuildOptions(data.TASKPROVINCE,1)
    html.Div([
        dcc.Dropdown(
        id='Prov_DD',                    
        options=options_array,
        value=options_array[0],
        multi=True)
      ],
      className='two columns'
    ),
    

    您将无法从 dcc.Dropdown(options=...) 中获取值,因为它实际上还没有被实例化。

    另外,目前我认为实用更新 dcc.Dropdown 的唯一其他方法是使用回调。

    只需先定义数组即可。

    【讨论】:

      【解决方案2】:

      您也可以在不创建函数的情况下实现此目的。我将以您的 for 为例向您展示它对我的工作原理。

          OptionList = [{'label': i, 'value': i} for i in DataFrameSeries.unique()]
          OptionList.insert(0,{'label': 'All', 'value': 'All'}
      

      然后在您的下拉组件中,只需说 options = optionList 像这样:

      html.Div([
          dcc.Dropdown(
          id='all',                    
          options=optionList,
          value=optionList[0],
          multi=True)
        ]
      )
      

      在下面查看我自己的结果: “所有地区”不在我的数据框中。 enter image description here

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        相关资源
        最近更新 更多