我已经创建了一个geoDataFrame,并希望创建一个Folium Map,绘制每个国家的人口食物。我是否必须创建Json文件,或者我可以直接使用geoDataFrame文件?
import folium
import fiona
import geopandas as gpd
world = fiona.open(gpd.datasets.get_path('naturalearth_lowres'))
world = gpd.GeoDataFrame.from_features([feature for feature in world])
world = world[(world.pop_est > 0) & (world.name != "Antarctica")]
我使用了folium.map和geojson函数,但无法创建正确的JSON文件。 谢谢你的帮助!
答案 0 :(得分:1)
在最新版本的folium中,您不需要将GeoDataFrame转换为geojson,但您可以直接传递它。连接填充列以为多边形着色仍然有点难以理解:
m = folium.Map()
m.choropleth(world, data=world, key_on='feature.properties.name',
columns=['name', 'pop_est'], fill_color='YlOrBr')
m
答案 1 :(得分:1)
@joris的答案中的m.cholopleth()
代码现已弃用。以下代码使用新的folium.Chloropleth()
函数产生相同的结果:
m = folium.Map()
folium.Choropleth(world, data=world,
key_on='feature.properties.name',
columns=['name', 'pop_est'],
fill_color='YlOrBr').add_to(m)
folium.LayerControl().add_to(m)
m