【问题标题】:Python Folium Choropleth plotsPython Folium Choropleth 图
【发布时间】:2017-11-11 16:19:57
【问题描述】:

我正在尝试使用我从这里下载的 geojson 数据文件绘制英国的等值线图:https://data.gov.uk/dataset/regions-december-2016-full-extent-boundaries-in-england2

下面是一个json数据的例子:

{
  "type":"FeatureCollection",
  "features":[
    {
      "type":"Feature",
      "properties":{"objectid":1,"rgn16cd":"E12000001","rgn16nm":"North East","bng_e":417313,"bng_n":600358,"long":-1.72889996,"lat":55.2970314,"st_areashape":8675727008.425964,"st_lengthshape":795456.8022925043},
      "geometry":{
        "type":"MultiPolygon",
        "coordinates":[[[[-2.0301237629331097,55.80991509288915],[-2.030069429494278,55.80991420787532],[-2.0300215494803053,55.80992140589199],[-2.0300040593387223,55.80993039246682],

我的 csv 文件如下所示: csv

我基本上只是想使用 folium 绘制出租车列。

问题是情节没有显示任何内容。我使用了以下代码。

import pandas as pd
import os
import json

# read in population data
df = pd.read_csv('map-data.csv')

import folium
from branca.utilities import split_six
state_geo = 'Regions_December_2016_Full_Extent_Boundaries_in_England.geojson'

m = folium.Map(location=[55, 4], zoom_start=5)
m.choropleth(
    geo_data=state_geo,
    data=df,
    columns=['LA-Code', 'Taxi'],
    key_on='feature.properties.rgn16cd',
    fill_color='YlGn',
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name='h',
    highlight=True
)

m

我认为问题与 key_on 参数有关。 我可以使用以下方式访问 json 文件中的正确代码:

geodata['features'][0]['properties']['rgn16cd']

这给了我正确的洛杉矶代码(E12000001),但它似乎没有 在上面的代码中工作。我也尝试在 key_on 参数中使用 features 而不是 feature,但这给了我一个错误

AttributeError: 'NoneType' 对象没有属性 'get'

有人知道问题是什么吗?谢谢。

【问题讨论】:

    标签: python json folium


    【解决方案1】:

    来自folium library's documentation on github:

    要在 Jupyter 笔记本中显示它,只需请求对象表示:

    在:米

    问题的根源很可能是您不在 Jupiter 笔记本中。将地图保存为 html 文件并在浏览器中打开它可以正常工作,而无需更改 json 文件。试试下面的代码:

    import pandas as pd
    import folium
    
    # read in population data
    df = pd.read_csv('map-data.csv')
    state_geo = 'Regions_December_2016.geojson'
    
    
    m = folium.Map(location=[55, 4], zoom_start=5)
    m.choropleth(
        geo_data=state_geo,
        data=df,
        columns=['LA-Code', 'Taxi'],
        key_on='feature.properties.rgn16cd',
        fill_color='YlGn',
        fill_opacity=0.7,
        line_opacity=0.2,
        legend_name='h',
        highlight=True
    )
    
    m.save("my_map.html")
    

    要从脚本打开地图,您可以通过subprocess.call 或os.system 调用您的网络浏览器,方法是在脚本末尾添加以下行:

    import os
    os.system("firefox my_map.html")
    

    【讨论】:

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