多个输入中的破折号错误:'长度匹配'

问题描述 投票:0回答:1

我在地图上的虚线中有三个输入,我想使用px.scatter_mapbox作为地图类型。同时,数据具有“类别”,“国家”和“状态”三个类别列,其中一个指标列为“ 4/24/20”。这三个维度是多个下拉列表,我认为它们没有问题(正常显示)。问题是下面的回调。它始终显示“必须比较长度才能匹配”的错误。我完全迷路了。

@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

enter image description here

python plotly plotly-dash
1个回答
0
投票

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

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

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

但是显然,这将假设您只会在多值下拉列表中选择一个值。如果您打算这样做,则可以考虑将其更改为其他类型的下拉菜单。它们都列在here中。希望能有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.