Dash中Plotly Choropleth地图无颜色编码显示问题求助
问题解决方案
该问题是Dash中使用Plotly choropleth_mapbox的常见问题,核心原因为字段匹配规则缺失或数据不匹配,可按以下步骤排查修复:
- 补全featureidkey参数:你当前代码未指定
featureidkey参数,Plotly默认会匹配GeoJSON中根层级的id字段和你数据集的state列,而通常印度行政边界GeoJSON的邦名称存储在每个feature的properties字段下,例如properties.st_nm、properties.state等。你需要在px.choropleth_mapbox参数中补充该配置,示例如下:
fig = px.choropleth_mapbox( data_frame = dff, locations = 'state', geojson = india_states, featureidkey="properties.state", # 按你实际GeoJSON的邦名字段名调整 range_color=(-1, 1), color = 'vader_score', mapbox_style = "carto-positron", color_continuous_scale = px.colors.diverging.RdBu, color_continuous_midpoint = 0, center = {'lat': 24, 'lon': 78}, zoom = 2.85, labels = {'vader_score': 'Sentiment Score'}, title = "Sentiment Map" )
你可以在加载GeoJSON后执行print(india_states['features'][0]['properties']),查看实际存储邦名的字段键名。
- 检查筛选后数据集是否为空:在回调的
update_graph函数中添加print(dff)验证筛选结果,确认下拉框传入的日期值类型和数据集中date列的类型完全一致,比如下拉框值为int类型时,若数据集中date为字符串类型,会导致筛选结果为空,无色块渲染。 - 验证邦名称完全匹配:检查数据集
state列的邦名拼写、大小写、空格、译名和GeoJSON中存储的邦名完全一致,任意字符差异都会导致匹配失败。 - 修复文件路径转义问题:Windows路径的反斜杠为Python转义字符,建议改为原始字符串格式,比如
pd.read_csv(r"C:\Data Science\Jupyter_Workspace\Twitter_Sentiment\Data\JSONLs\final_df.csv"),避免路径识别错误导致加载空数据。
内容的提问来源于stack exchange,提问作者rick458
相关产品推荐
相关产品推荐

