如何用大麦叶梗将聚类标记添加到Choropleth

问题描述 投票:1回答:1

我已经使用Folium中的Choropleth和Cluster标记图工作了一段时间(很棒)。我的问题是,是否可以将它们组合在一个图中,这样我就可以看到一个变量对另一个变量有多大影响。我可以使这两种地图类型都可以单独工作,所以在那里没有问题。到目前为止,这是我尝试将两者结合的代码:

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

它会产生choropleth,但也不会对聚类标记进行分层。值得一提的是,群集标记在单独显示时不会出现问题,但是在Jupyter笔记本中无法显示,但我通过将文件另存为html来解决了该问题,然后就可以对其进行查看了。

python folium
1个回答
0
投票

好,所以我解决了,真的很高兴!解决方案是先进行标记聚类,然后再进行Choropleth:

import pandas as pd
import folium
from folium.plugins import MarkerCluster

m = folium.Map(location=[Lat,Lon], zoom_start=12)

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)

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)

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)

m
© www.soinside.com 2019 - 2024. All rights reserved.