设置颜色以消除大叶脉络膜的缺失值

时间:2018-08-22 07:32:36

标签: python pandas leaflet geojson folium

我有一个包含一些个国家和变量的数据框,我想用folium生成一个Choropleth映射,并使用整个世界的geojson文件。我在folium上将色标的最大值分配给我的数据框中没有的国家时遇到问题。下面的最低要求:

import random
import pandas as pd
import folium
import json

map_data = pd.DataFrame({
    'A3':['POL', 'CZE', 'SVK', 'HUN', 'AUT'],
    'value':random.sample(range(10), 5)
})

m = folium.Map(
    location = [50, 15], 
    zoom_start = 4
)

m.choropleth(
    geo_data = 'https://github.com/simonepri/geo-maps/releases/download/v0.6.0/countries-land-10km.geo.json',
    data = map_data,
    columns = ['A3', 'value'],
    key_on = 'feature.properties.A3',
    fill_color = 'YlOrRd'
)

enter image description here

我的问题如下:我如何告诉folium 为丢失的国家/地区(例如,存在于json文件中但没有的国家/地区)分配特定的颜色(例如,灰色或透明)map_data中,而不是将它们着色为给定变量的最大值(这是一种奇怪的行为)?

1 个答案:

答案 0 :(得分:4)

此问题在最近的请求请求中已在大叶中修复: https://github.com/python-visualization/folium/pull/1005

如果您是从git安装的(或从0.7版本发布后从PyPY安装),则可以使用nan_fill_color的{​​{1}}方法的nan_fill_opacitychoropleth参数设置没有值的元素的样式。

此笔记本中的最后一个示例显示了如何执行此操作: https://nbviewer.jupyter.org/github/python-visualization/folium/blob/master/examples/GeoJSON_and_choropleth.ipynb#Using-choropleth-method