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

Folium Choropleth报错排查:key_on疑误与ColorBrewer代码无效问题

解决Folium Choropleth的「blue is not a valid ColorBrewer code」错误

嘿,我看你折腾了半天key_on参数,结果报错根源其实不在这儿——是你用的颜色代码不符合ColorBrewer的规范要求!Folium的Choropleth组件只认ColorBrewer体系里的调色板名称,比如'Blues'(首字母大写、复数形式),而你大概率写了小写的'blue',这就触发了那个ValueError。

快速修复步骤

  1. 替换无效的颜色代码
    把代码里类似cmap='blue'的部分改成合法的ColorBrewer调色板名,常用的蓝色系选项是'Blues'(从浅蓝到深蓝的渐变),其他可选的比如'Greens'、'OrRd'(橙红色系)、'PuBu'(紫蓝色系)都可以。要是不确定哪些合法,直接用matplotlib的plt.colormaps()就能列出所有可用的选项。

  2. 适配你场景的完整示例代码
    结合你的澳大利亚邮编数据和tas_kW_series,正确的Choropleth调用应该是这样的:

    import folium
    
    # 初始化地图(以塔斯马尼亚为中心,可根据数据调整坐标)
    m = folium.Map(location=[-42.8821, 147.3272], zoom_start=7)
    
    # 添加光伏装机容量的Choropleth图层
    folium.Choropleth(
        geo_data='你的塔斯马尼亚邮编GeoJSON文件路径',
        data=tas_kW_series,
        key_on='feature.properties.pc_int',  # 你已确认匹配没问题,无需修改
        columns=[tas_kW_series.index, tas_kW_series.values],
        fill_color='Blues',  # 这里换成合法的调色板名
        fill_opacity=0.7,
        line_opacity=0.2,
        legend_name='光伏装机容量 (kW)',
        bins=5,  # 可根据数据分布调整分箱数
        reset=True
    ).add_to(m)
    
    # 保存地图到本地
    m.save('tasmania_solar_installations.html')
    
  3. 自定义分箱(可选)
    要是默认分箱不符合你的数据情况,你可以手动指定分箱区间,比如:

    bins=[0, 10, 50, 200, 1000, float('inf')]
    

    把这个参数加到Choropleth里,就能更精准地对应不同装机容量的着色效果了。

额外提醒

你之前移除GeoJSON中不存在的邮编数据这一步很关键,确保了数据和地理边界的匹配,这部分不用改。要是还是担心,可以先去掉cmap参数用默认值测试,确认图层能正常渲染后再换成你想要的调色板。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:32:58