You need to enable JavaScript to run this app. 使用Plotly Express绘制Mapbox地图为空,如何正确展示指定数据
优惠活动
大模型
产品
解决方案
定价
更多

使用Plotly Express绘制Mapbox地图为空,如何正确展示指定数据

问题原因

plotly的choropleth_mapbox方法默认会用locations传入的值去匹配GeoJSON的id字段,你使用的国家GeoJSON里国家名称存储在properties.name字段,没有做匹配绑定,同时没有指定默认缩放和中心位置,所以看不到渲染内容。

修复方案

  1. 给px.choropleth_mapbox添加featureidkey参数,指定GeoJSON中用于匹配国家名的字段路径
  2. 补充地图默认缩放和中心坐标,确保渲染区域可见
  3. 可选:检查数据集国家名和GeoJSON中存储的国家名是否完全一致,避免匹配失败

修改后的核心代码如下:

fig = px.choropleth_mapbox(
    fietsdata, 
    geojson=countries, 
    locations='country', 
    featureidkey="properties.name", # 绑定GeoJSON中的国家名字段
    color='total_profit',
    color_continuous_scale="Viridis",
    mapbox_style="open-street-map",
    zoom=1, # 设置默认缩放等级
    center={"lat": 25, "lon": 10} # 设置地图初始中心位置
)

如果修改后仍有部分国家不显示,可以先输出GeoJSON中存储的国家名列表,和你的数据集country列值做比对,把不一致的名称统一即可:

# 输出GeoJSON中的所有国家名,用于比对
for feature in countries['features']:
    print(feature['properties']['name'])

内容的提问来源于stack exchange,提问作者Pim Steijns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 08:27:06