使用Plotly制作印尼Choropleth图:locationmode与geo_scope参数疑问
解决Plotly制作印尼Choropleth地图的locationmode与geo_scope参数问题
1. 关于locationmode的正确设置
locationmode需要和你df['Column']中存储的行政区划标识类型严格匹配,针对印尼场景,常见选项如下:
- 若存储的是印尼省级ISO-3子代码(如
ID-JK代表雅加达、ID-BT代表巴厘岛),保持locationmode='ISO-3'即可,注意代码格式必须是ID-XX的形式。 - 若存储的是印尼省级行政区英文名称,将
locationmode改为'INDONESIA_ADMIN_1',Plotly内置了印尼一级行政区的名称映射,可直接匹配。 - 若仅需展示整个印尼国家的Choropleth地图,
locations列填国家ISO-3代码IDN,locationmode='ISO-3'即可。
2. 聚焦印尼区域(替代默认的geo_scope='asia')
Plotly的geo_scope没有直接的印尼选项,仅用geo_scope='asia'会显示整个亚洲区域,印尼占比过小。你可以通过手动设置地理中心、缩放级别来聚焦印尼:
修改后的完整代码示例
fig8 = go.Figure(data=go.Choropleth( locations=df['Column'], # 确保此处标识与locationmode匹配 z = df['Columnnext'], locationmode = 'INDONESIA_ADMIN_1', # 根据你的数据类型替换 colorscale = 'Reds', colorbar_title = "指标名称", )) fig8.update_layout( title_text = '印尼XX指标分布图', geo=dict( scope='asia', center=dict(lat=-2.5, lon=118.0), # 印尼地理中心坐标 zoom=3.5, # 缩放级别可根据需求微调 showcountries=True, countrycolor="gray", showsubunits=True, subunitcolor="white" ) ) fig8.show()
关键注意事项
- 务必保证
df['Column']中的值与locationmode的要求完全匹配,比如使用INDONESIA_ADMIN_1时,省名需用英文(如Jakarta),而非印尼语本地名称。 - 若使用ISO-3省级代码,需确认代码的准确性,拼写错误会导致对应区域无法高亮显示。
内容的提问来源于stack exchange,提问作者Wind
相关产品推荐
相关产品推荐

