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

Folium Choropleth分级统计图未正常显示填充颜色问题求助

测试数据源
  • GeoJSON 文件:休斯顿邮编行政边界数据
  • CSV 文件:各邮编区域OY(机遇青年)数量统计数据,代码中加载后赋值给变量 new
实现需求

创建 chloropleth 分级统计图,展示休斯顿各邮编(zipcode)区域的机遇青年(opportunity youth)数量分布。

实现代码
n = folium.Choropleth(
    geo_data=r'Zip_Codes.geojson',
    data=new,
    columns=['ZIPCODE','oy_count'], 
    key_on='feature.properties.ZIP_CODE', 
    fill_color='YlGn',
    nan_fill_color="White", 
    fill_opacity=1,
    line_opacity=0.5,
    legend_name='Num of OY',
    highlight=True,
    line_color='black'
)
n.add_to(htx_map2) 
folium.LayerControl().add_to(htx_map2)
htx_map2
异常现象

代码运行后未输出预期的黄-绿色阶分级统计地图,仅显示无填充色的空白区域,异常效果如下:
空白地图异常截图

问题原因与修复方案

核心错误是两个数据源的关联字段数据类型不匹配:

  • GeoJSON 边界文件中存储邮编的字段 ZIP_CODE 为字符串类型,而从CSV加载的统计数据 new 中,ZIPCODE 列默认解析为数值(整数/浮点数)类型。Folium 做区域与统计值的关联匹配时,类型不一致会直接导致匹配失败,所有区域都会被判定为无对应统计值,因此填充了你设置的空值白色,无法显示预期的色阶。
  • 修复方法非常简单,在初始化 Choropleth 前添加一行代码,将统计数据中的邮编列转为字符串类型,和GeoJSON中的字段类型保持一致即可:
new['ZIPCODE'] = new['ZIPCODE'].astype(str)

如果转类型后仍有零散区域不显示,可进一步检查两边的邮编值格式是否统一,比如是否存在前导零缺失、字段值带多余空格等问题,确保同一邮编在两个数据源中的值完全相等即可正常渲染。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:21:43