несколько входов в графике да sh ошибка: 'Длина совпадает' - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть три входа для моей карты в сюжете da sh, и я хочу использовать px.scatter_mapbox в качестве типа карты. Между тем, данные имеют три категориальных столбца, включая «регион», «страна» и «статус», с одним столбцом metri c «24.04.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

1 Ответ

1 голос
/ 25 апреля 2020

Похоже, что вы используете многозначные выпадающие компоненты Da sh, поэтому их атрибуты 'value' на самом деле Python списки, а не отдельные значения.

Надеемся, что следующая модификация вашего кода должна исправить ошибка:

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

Но это, очевидно, предполагает, что вы будете выбирать только одно значение в раскрывающихся списках с несколькими значениями. Если это ваше намерение, вы можете изменить их на другой тип выпадающего меню. Все они перечислены здесь . Надеюсь, это поможет!

...