我已经在Folium中使用Choropleth和Cluster marker地图工作了一段时间(它们非常棒)。我的问题是是否可以将它们组合在一个地图中,这样我就可以看到一个变量对另一个变量的影响有多大。我可以分别使用两种地图类型,所以没有问题。这是我迄今为止尝试组合两者的代码:
import pandas as pd
import folium
from folium.plugins import MarkerCluster
input_filename="input_filename.csv"
df = pd.read_csv(input_filename,encoding='utf8')
geo = 'blah.json'
comparison = 'comparison.csv'
comparison_data = pd.read_csv(comparison)
m = folium.Map(location=[Lat,Lon], zoom_start=12)
folium.Choropleth(
geo_data=geo,
name='choropleth',
data=comparison_data,
columns=['col1','col2'],
key_on='feature.properties.ID',
fill_color='OrRd',
fill_opacity=0.5,
line_opacity=0.5,
legend_name='Blah (%)'
).add_to(m)
folium.LayerControl().add_to(m)
marker_cluster = MarkerCluster().add_to(m)
for row in df.itertuples():
folium.Marker(location=[row.Lat,row.Lon],popup=row.Postcode).add_to(marker_cluster)
m
它可以生成区域分布图,但无法将聚类标记叠加在上面。值得注意的是,我曾经遇到过单独使用聚类标记时的问题,在Jupyter笔记本中无法显示,但我通过将文件保存为HTML来解决了这个问题,然后就可以查看了。