Folium Choropleth 不会改变瓷砖上的颜色

问题描述 投票:0回答:1
DF = pd.DataFrame({'REGION_ID':list(range(0,88)), 'share': list(map(lambda x: x* 5.3, list(range(0,88))))})

m = folium.Map(location=[63.391522, 96.328125], zoom_start=3)

rel_ = folium.Choropleth(
       geo_data = './admin_level_4.geojson', 
       name = Имя',
       data = DF,
       columns=['REGION_ID', 'share'], 
       key_on='id',
       bins = 10,
       fill_color='BuGn',
       nan_fill_color='darkblue',
       nan_fill_opacity=0.5,
       fill_opacity=0.7,
       line_opacity=0.2,
       legend_name= 'Легенда',
       highlight = True,
       show = False
)

rel_.add_to(m)

在教程中,他们提到 REGION_ID 应该与 geojson 中的相同 REGION_ID 相对应,但我找不到任何...

gpd.read_file('./admin_level_4.geojson').columns.values
array(['flag', 'ref', 'name', 'note', 'is_in', 'koatuu', 'place',
   'ref:en', 'ref:ru', 'ref:uk', 'source', 'int_ref', 'name:ab',
   'name:af', 'name:ar', 'name:av', 'name:az', 'name:ba', 'name:be',
   'name:bg', 'name:bs', 'name:ca', 'name:ce', 'name:cs', 'name:cu',
   'name:cv', 'name:cy', 'name:da', 'name:de', 'name:el', 'name:en',
   'name:eo', 'name:es', 'name:et', 'name:eu', 'name:fa', 'name:fi',
   'name:fr', 'name:fy', 'name:ga', 'name:he', 'name:hi', 'name:hr',
   'name:hu', 'name:hy', 'name:id', 'name:is', 'name:it', 'name:ja',
   'name:ka', 'name:kk', 'name:ko', 'name:ku', 'name:kv', 'name:ky',
   'name:la', 'name:lb', 'name:lt', 'name:lv', 'name:mk', 'name:mn',
   'name:mr', 'name:ms', 'name:nb', 'name:nl', 'name:nn', 'name:no',
   'name:oc', 'name:os', 'name:pl', 'name:pt', 'name:ro', 'name:ru',
   'name:se', 'name:sh', 'name:sk', 'name:sl', 'name:sq', 'name:sr',
   'name:su', 'name:sv', 'name:sw', 'name:ta', 'name:tg', 'name:tl',
   'name:tr', 'name:tt', 'name:ug', 'name:uk', 'name:ur', 'name:uz',
   'name:vi', 'name:yi', 'name:zh', 'alt_name', 'website', 'boundary',
   'int_name', 'name:aba', 'name:ace', 'name:ast', 'name:atv',
   'name:bxr', 'name:crh', 'name:dsb', 'name:hak', 'name:hsb',
   'name:inh', 'name:kaa', 'name:kbd', 'name:koi', 'name:krc',
   'name:krl', 'name:lbe', 'name:lez', 'name:lrc', 'name:mhr',
   'name:mrj', 'name:myv', 'name:nog', 'name:pam', 'name:pnb',
   'name:sah', 'name:sco', 'name:szl', 'name:tyv', 'name:tzl',
   'name:udm', 'name:vep', 'name:war', 'name:xal', 'name_int',
   'old_name', 'timezone', 'wikidata', 'ISO3166-2', 'ssrf:code',
   'wikipedia', 'cladr:code', 'oktmo:user', 'omkte:code',
   'addr:region', 'population', 'short_name', 'source:url',
   'admin_level', 'alt_name:ca', 'alt_name:de', 'alt_name:en',
   'alt_name:fr', 'alt_name:nl', 'alt_name:ru', 'alt_name:sl',
   'alt_name:vi', 'border_type', 'name:az-cyr', 'old_name:en',
   'old_name:eo', 'old_name:fr', 'old_name:os', 'old_name:vi',
   'addr:country', 'addr:postcode', 'cadaster:code', 'name:be-x-old',
   'gis-lab:status', 'wikipedia:ru', 'wikipedia:uk', 'is_in:country',
   'official_name', 'gost_7.67-2003', 'name:be-tarask',
   'is_in:continent', 'name:zh-min-nan', 'official_name:av',
   'official_name:az', 'official_status', 'old_alt_name:vi',
   'population:date', 'official_name:ca', 'official_name:ce',
   'official_name:de', 'official_name:en', 'official_name:es',
   'official_name:fr', 'official_name:it', 'official_name:ru',
   'official_name:lez', 'official_name:tt', 'official_name:bxr',
   'official_name:udm', 'population:source', 'is_in:country_code',
   'geometry'], dtype=object)

在地图的可视化上,我没有看到区域之间有任何颜色变化。

这有什么问题?

我已经通过 geopandas 手动尝试了 id 列并将其保存到 geojson 但出现错误:ValueError:key_on

'id'
not found in GeoJSON.

python gis geospatial folium choropleth
1个回答
0
投票

好的,我发现了问题。 key_on='id' 必须和geojson中的id一样。 但问题是 geopandas 不显示所有数据。即使使用 gdf.geo_interface['features'] 也显示错误的 id 枚举 0 而不是正确的 id。永远,永远不要使用 geopandas 来分析你的 geojson 文件。

浪费了我三个小时的时间。

© www.soinside.com 2019 - 2024. All rights reserved.