【问题标题】:Python Dash Callback is not updating Data when I select Dropdown Values当我选择下拉值时,Python Dash 回调未更新数据
【发布时间】:2021-06-13 18:21:28
【问题描述】:

谁能告诉我为什么当我选择下拉值时我的代码没有用数据更新图表? (整个 GitHub 代码在下面 cmets 的链接中)

def filterPollutants(selected_pollutants):
    if selected_pollutants:
        dff = df.loc[df.pollutant_abb.isin([selected_pollutants])]
    else:
        dff = df

    bar_fig = {
        "data": [
            go.Bar(
                x=dff["U_SAMPLE_DTTM"],
                y=dff["DISPLAYVALUE"],
            )
        ],
        "layout": go.Layout(
            title="Sampling for Local Limits",
            # yaxis_range=[0,2],
            yaxis_title_text="Metals mg/L",
        ),
    }

【问题讨论】:

标签: python plotly-dash


【解决方案1】:

通过测试您共享的 Github 链接上的代码,我认为问题出在您在回调中过滤数据集的这一行:

dff = df.loc[df.pollutant_abb.isin([selected_pollutants])]

这一行的问题是回调中selected_pollutants 的值是['SELECTED_VALUE_FROM_DROPDOWN'] 的形式,而不是'SELECTED_VALUE_FROM_DROPDOWN'。这是因为您的下拉列表将 multi 设置为 True

但正因为如此,您的 isin 过滤器不起作用,因为您实际上是在这样做:

dff = df.loc[df.pollutant_abb.isin([['SELECTED_VALUE_FROM_DROPDOWN']])]

而不是这个:

dff = df.loc[df.pollutant_abb.isin(['SELECTED_VALUE_FROM_DROPDOWN'])]

因此解决方法可能是删除 selected_pollutants 周围的列表:

dff = df.loc[df.pollutant_abb.isin(selected_pollutants)]

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 2021-11-16
    • 2013-09-28
    • 1970-01-01
    • 2023-03-19
    • 2022-08-08
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多