我在plotly破折号中有三个地图输入,我想使用px.scatter\u 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
看起来您正在使用多值下拉式仪表板组件,因此它们的“值”属性实际上是Python列表,而不是单个值
下面对代码的修改有望修复此错误:
filtered_df = dff[(dff['region'] == input1[0]) & (dff['country'] == input2[0]) & (dff['status'] == input3[0])]
但这显然是假设您将只在多值下拉列表中选择一个值。如果这是你的意图,你可以考虑将这些改变为不同类型的下拉。它们都列在here上。希望有帮助
相关问题 更多 >
编程相关推荐