我有一个包含一些个国家和变量的数据框,我想用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'
)
我的问题如下:我如何告诉folium
为丢失的国家/地区(例如,存在于json文件中但没有的国家/地区)分配特定的颜色(例如,灰色或透明)在map_data
中,而不是将它们着色为给定变量的最大值(这是一种奇怪的行为)?
答案 0 :(得分:4)
此问题在最近的请求请求中已在大叶中修复: https://github.com/python-visualization/folium/pull/1005
如果您是从git安装的(或从0.7版本发布后从PyPY安装),则可以使用nan_fill_color
的{{1}}方法的nan_fill_opacity
和choropleth
参数设置没有值的元素的样式。
此笔记本中的最后一个示例显示了如何执行此操作: https://nbviewer.jupyter.org/github/python-visualization/folium/blob/master/examples/GeoJSON_and_choropleth.ipynb#Using-choropleth-method