【问题标题】:multiple inputs in plotly dash error: 'Lenths match'破折号错误中的多个输入:“长度匹配”
【发布时间】:2020-04-25 14:43:20
【问题描述】:

我在 plotly dash 中有我的地图的三个输入,我想使用 px.scatter_mapbox 作为地图类型。同时,数据有“地区”、“国家”和“状态”三个分类列,其中一个度量列是“2020 年 4 月 24 日”。这三个维度是多个下拉列表,我认为它们没有问题(正常显示)。问题是下面的回调。它总是显示“长度必须比较匹配”的错误。我完全迷路了。

@app.callback(
    Output('map-graph', 'figure'),
    [Input('region_dropdown_id', 'value'),
     Input('country_dropdown_id', 'value'),
     Input('status_dropdown_id', 'value')
     ],
)
def map_selection(input1, input2, input3):
    import plotly.express as px
    MBToken = 'your token'
    px.set_mapbox_access_token(MBToken)
    dff = df
    dff = dff[dff["4/24/20"]>0]
    filtered_df = dff[(dff['region'] == input1) & (dff['country'] == input2) & (dff['status'] == input3)]
    fig = px.scatter_mapbox(filtered_df, lat="Lat", lon="Long",     color= input3, size="4/24/20",
                      color_continuous_scale=px.colors.cyclical.IceFire, size_max=100, zoom=0)
    return fig

【问题讨论】:

    标签: python plotly plotly-dash


    【解决方案1】:

    看起来您正在使用多值下拉 Dash 组件,因此它们的“值”属性实际上是 Python 列表而不是单个值。

    对您的代码进行以下修改有望修复错误:

    filtered_df = dff[(dff['region'] == input1[0]) & (dff['country'] == input2[0]) & (dff['status'] == input3[0])]

    但这显然假设您只会在多值下拉列表中选择一个值。如果这是您的意图,您可以考虑将这些更改为不同类型的下拉列表。他们都列出了here。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多