【问题标题】:Choropleth Maps generated from folium - 'Type' KeyError从 folium 生成的 Choropleth 地图 - 'Type' KeyError
【发布时间】:2021-01-20 05:43:14
【问题描述】:

我正在尝试使用 Folium 生成 Choropleth 地图,当它到达 geo_data 行时,我不断收到“类型”KeyError。以下是我的以下代码:

url = ('https://github.com/camstark/calgis')
state_geo = f'{url}/ward-boundaries-simple.json'

# Calgary latitude and longitude values
latitude = 51.0534234
longitude = -114.0625892

# let Folium determine the scale.
yyc_map = folium.Map(location=[latitude, longitude], zoom_start=12)

folium.Choropleth(
    geo_data=state_geo,
    name="choropleth",
    data=df_demo,
    columns=['NAME','Number of Residents Age 25 to 54'],
    key_on="feature.id",
    fill_color="YlGn",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="Target Demographic Count in Calgary",
).add_to(yyc_map)

folium.LayerControl().add_to(yyc_map)

yyc_map

data = df_demo 行应该没问题,我正确格式化了我的人口统计数据。所以我的主要问题是我可以做些什么来明智地修复这个编码,或者它只是 JSON 文件本身的问题。

谢谢。

【问题讨论】:

    标签: folium keyerror choropleth


    【解决方案1】:

    显然错误是因为state_geo 指向无效的url:https://github.com/camstark/calgis/ward-boundaries-simple.json

    有效的 url 可以这样构造:

    url = ('https://raw.githubusercontent.com/camstark/calgis')
    state_geo = f'{url}/gh-pages/ward-boundaries-simple.json'
    

    所提供的示例还有一个问题,例如,需要将 GeoJSON 结构 key_on 设置为 feature.properties.ward_num,否则 folium 会报错:

    ValueError: key_on `'id'` not found in GeoJSON.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 2019-06-09
      相关资源
      最近更新 更多