You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取阿根廷省份GeoJSON数据后无法绘制Plotly地图求助

解决Plotly Express绘制阿根廷省份地图失败的问题

核心问题与修复方案

1. 修正ID字段的数据类型不匹配

根据提供的df4数据结构,provincia_id为数值类型,但GeoJSON文件中的properties.id是字符串类型,两者类型不匹配会导致区域无法关联。执行以下代码转换类型:

# 将DataFrame中的provincia_id转为字符串
df4['provincia_id'] = df4['provincia_id'].astype(str)

2. 确认GeoJSON的ID字段正确性

先打印GeoJSON的第一个特征属性,验证ID字段的键名是否为id:

# 查看GeoJSON中第一个区域的属性结构
print(ar_regions_geo['features'][0]['properties'])

如果输出中的ID字段不是id(比如是codigo或其他名称),需要同步修改featureidkey参数,例如:

featureidkey='properties.codigo'  # 替换为实际的键名

3. 过滤无效匹配数据

检查并移除df4中与GeoJSON不匹配的provincia_id,避免无效数据干扰渲染:

# 提取GeoJSON中的所有有效ID
geo_ids = [feat['properties']['id'] for feat in ar_regions_geo['features']]
# 保留仅匹配的行
df4 = df4[df4['provincia_id'].isin(geo_ids)]

4. 优化地图显示参数

默认的fitbounds可能无法精准适配阿根廷区域,手动设置中心坐标和缩放级别:

fig.update_geos(
    showcountries=True,
    showcoastlines=True,
    showland=True,
    center={"lat": -38.4161, "lon": -63.6167},  # 阿根廷地理中心坐标
    projection_scale=4,  # 缩放级别,可根据需求调整
    fitbounds="locations"
)

完整修复代码

import pandas as pd
import requests
import plotly.express as px

df4 = pd.read_excel('provincias.xls')
# 转换ID类型为字符串,匹配GeoJSON格式
df4['provincia_id'] = df4['provincia_id'].astype(str)

repo_url = 'https://infra.datos.gob.ar/catalog/modernizacion/dataset/7/distribution/7.12/download/provincias.geojson'
ar_regions_geo = requests.get(repo_url).json()

# 过滤仅匹配的省份数据
geo_ids = [feat['properties']['id'] for feat in ar_regions_geo['features']]
df4 = df4[df4['provincia_id'].isin(geo_ids)]

fig = px.choropleth(
    data_frame=df4, 
    geojson=ar_regions_geo, 
    locations='provincia_id',
    featureidkey='properties.id',  
    color='Total', 
    color_continuous_scale="burg",
    title='阿根廷省份数据可视化'
)

fig.update_geos(
    showcountries=True,
    showcoastlines=True,
    showland=True,
    center={"lat": -38.4161, "lon": -63.6167},
    projection_scale=4
)

fig.show()

内容的提问来源于stack exchange,提问作者juan esteban arilla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:53:17