我对大叶草还很陌生,所以这可能有点笨拙,但是我目前正在尝试绘制几个不同数据点的热图,并增加在同一图上所有热图之间切换的功能。例如,我有这样的东西:
# The base map
hmap = folium.Map(location=[38.908111, -77.008871], tiles="Stamen Terrain", zoom_start=12)
# And each layer
# Homicide
HeatMap(list(zip(crime_homicide.LATITUDE.values, crime_homicide.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Homicides').add_to(hmap))
# Robbery
HeatMap(list(zip(crime_robbery.LATITUDE.values, crime_robbery.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Robbery').add_to(hmap))
# Assault
HeatMap(list(zip(crime_assault.LATITUDE.values, crime_assault.LONGITUDE.values))).add_to(folium.FeatureGroup(name='Assault').add_to(hmap))
folium.LayerControl(collapsed=False).add_to(hmap)
folium.GeoJson(dc_shape).add_to(hmap)
我尝试使用叶片的FeatureGroup
功能,但看起来那只是特定的标记,而不是整个地图。如果都是热图,是否可以在不同的图之间进行切换?
答案 0 :(得分:1)
您的代码似乎正常。 尝试这个 - hmap.add_child
或者您也可以尝试使用heatmapwithtime,指定不同的指标,您可以实时调整以查看不同的热点图。
但是,FeatureGroup()似乎无法与HeatMapWithTime一起使用,并且直接在热图上添加图层会导致侧面上有多个时间滑块,而所有添加的图层应该只有一个(公共)时间滑块。
因此,如果您希望拥有一个控件,则必须将所有数据放在一个geojson中并使用它。
为什么要添加要素组?如果您希望能够选择要显示的HeatMapWithTime实例,则可以将它们都添加到地图中,并且都应该在图层控件中打开。
m = Map()
HeatMapWithTime(data1).add_to(m)
HeatMapWithTime(data2).add_to(m)
仅供参考,功能组用于将项目分组并一起显示。这些项目本身不会直接添加到地图中。例如:
fg = FeatureGroup().add_to(m)
fg.add_child(Item1)
fg.add_child(Item2)
这也是链接,可能会对您有所帮助:) https://python-visualization.github.io/folium/plugins.html