使用Choropleth绘制密歇根县地图时遇到的问题
密歇根县Choropleth地图显示空白无颜色填充问题
我刚接触Choropleth,用密歇根县的GeoJSON文件绘制地图,想展示各县支持John的人群百分比,但最终只得到一张侧边带图例的空白美国地图(地图区域无任何颜色填充,仅显示美国轮廓和右侧的支持率图例)。
我的数据集包含各县名称(NAME)和对应%John字段,GeoJSON文件为密歇根县的边界数据。
使用的代码:
fig = px.choropleth(statistical_data, locations = 'NAME', locationmode = 'ISO-3', geojson = michigan_counties, color = '%John', featureidkey = 'properties.NAME') fig.show()
预期效果是聚焦密歇根州各县,按支持John的百分比进行颜色编码的地图。
问题修复方法
你这问题核心是locationmode参数设置错误——ISO-3是国家代码的标准格式,而你用的是美国县的名称,完全不匹配,导致Plotly无法将你的数据和GeoJSON里的地理区域关联起来,所以地图显示空白。
修改代码时注意两点:
- 移除
locationmode = 'ISO-3'参数:使用自定义GeoJSON时,不需要指定这个区域模式,Plotly会通过featureidkey和locations字段自动匹配数据与地理边界。 - 添加
scope='usa'参数:让地图自动聚焦到美国区域,这样就能显示密歇根州的细节,而非整张空白的美国地图。
修改后的代码:
fig = px.choropleth(statistical_data, locations = 'NAME', geojson = michigan_counties, color = '%John', featureidkey = 'properties.NAME', scope='usa') fig.show()
另外需要核对你的数据集里的NAME字段和GeoJSON中properties.NAME的县名完全一致(比如大小写、空格、缩写是否统一),如果名称存在差异,也会导致无法正确填充颜色。
内容的提问来源于stack exchange,提问作者datalover_Pk1
相关产品推荐
相关产品推荐

