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

Plotly Choropleth未绘制澳大利亚郊区多边形问题排查

澳大利亚郊区Choropleth地图空白问题排查
  • ID字段类型/内容不匹配
    确认GeoJSON里每个Feature的id属性,和数据表Postal字段的类型、内容完全一致。比如GeoJSON的id是字符串格式(如"3000"),但数据表Postal是数字类型(3000),Plotly无法完成匹配,自然不会渲染任何多边形。可以把数据表的Postal转成字符串,或者调整GeoJSON的id为数字类型。

  • GeoJSON格式或加载问题
    先检查GeoJSON文件路径是否正确,加载后用print(geojson_data['features'][0])查看第一个Feature的结构,确保id属性在Feature的顶层(不是嵌套在properties里)。如果GeoJSON存在语法错误(比如括号不闭合、字段名拼写错误),Plotly无法解析,也会显示空白。

  • Plotly参数配置错误
    调用px.choropleth时,必须确保参数对应正确,尤其是这几个关键项:

    • geojson传入正确加载的GeoJSON对象
    • locations指定为数据表的Postal字段
    • featureidkey明确设置为"id"(因为你把id放在Feature顶层,Plotly默认会找properties.id)
      示例正确参数写法:
    fig = px.choropleth(df,
                        geojson=suburbs_geojson,
                        locations='Postal',
                        featureidkey='id',
                        color='Status')
    
  • 坐标系/投影不匹配
    澳大利亚部分郊区GeoJSON可能使用本地坐标系(如GDA94/EPSG:4283),而Plotly默认采用WGS84(EPSG:4326)。坐标系不匹配会导致多边形被渲染到视野外,看起来是空白。可以添加fig.update_geos(fitbounds="locations", visible=False)让地图自动适配GeoJSON范围,或者提前将GeoJSON转换为WGS84坐标系。

  • 无匹配的邮政编码数据
    检查数据表中的Postal值,是否有至少一部分能在GeoJSON的id中找到对应。如果数据表的邮政编码完全不在GeoJSON的id列表里,Plotly没有可渲染的匹配区域,就会显示空白。可以用set(df['Postal']) & set([feat['id'] for feat in suburbs_geojson['features']])查看两者的交集是否为空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:06:27