我有一个包含 * 一些 * 国家和变量的数据框,我想用folium
制作一个地区分布图,使用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
中的国家)分配一个特定的颜色(例如,灰色或透明),而不是将它们着色为给定变量的最大值(这是一个奇怪的行为)?
2条答案
按热度按时间wpx232ag1#
这是在folium 0.7.0中添加的,您可以使用
Map
的choropleth
方法的nan_fill_color
和nan_fill_opacity
参数来设置没有值的元素的样式。本“笔记本”中的最后一个示例说明了如何执行此操作:https://nbviewer.jupyter.org/github/python-visualization/folium/blob/main/examples/GeoJSON_and_choropleth.ipynb#Using-choropleth-method
fdx2calv2#
使用
choropleth
方法似乎无法实现这一点。我找到了一个变通方法,即使用自定义style_function
和GeoJson
,而不是使用choropleth
: