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

使用Altair加载意大利省份Shapefile生成图表异常,求助排查

意大利省份分级统计图(Altair + Geopandas)问题排查

问题排查与解决步骤

  • 坐标系不匹配
    ISTAT提供的意大利省份Shapefile默认采用EPSG:3003(意大利国家坐标系),而Altair默认需要WGS84(EPSG:4326)经纬度格式。读取后先转换坐标系:

    import geopandas as gpd
    gdf = gpd.read_file("你的省份Shapefile路径")
    gdf = gdf.to_crs(epsg=4326)  # 转换为Altair兼容的坐标系
    
  • 数据关联错误
    确认分级统计用的数值字段和地理数据的省份标识(比如ISTAT数据里的COD_PROV编码或DEN_PROV名称)完全匹配,字段不对应会导致渲染异常。

  • GeoDataFrame格式校验
    Altair要求输入为标准GeoDataFrame,且几何列名为geometry。执行以下代码验证:

    print(gdf.geometry.name)  # 输出应为"geometry"
    print(type(gdf))          # 输出应为<class 'geopandas.geodataframe.GeoDataFrame'>
    
  • Altair图表配置修正
    确保图表使用mark_geoshape(),并正确配置投影和编码:

    import altair as alt
    
    chart = alt.Chart(gdf).mark_geoshape(
        stroke='white',
        strokeWidth=0.5
    ).encode(
        color='你的统计数值字段:Q'  # 替换为实际用于分级的字段
    ).project(
        type='mercator'  # 也可尝试'albers'投影适配意大利区域
    ).properties(
        width=600,
        height=800
    )
    chart.show()
    
  • Shapefile完整性检查
    确认本地Shapefile包含所有必需附属文件(.shp、.shx、.dbf、.prj等),缺失任一文件会导致读取异常。

快速验证方法

先通过Geopandas直接绘制轮廓,确认地理数据本身无问题:

gdf.plot()  # 若能正常显示意大利省份轮廓,说明数据读取/坐标系无问题,再排查Altair配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:40:27