我正在尝试为我的folium热图层添加权重,但我不知道如何正确实现这一点。
我有一个包含3列的数据帧:LAT、LON和VALUE。价值是该地点的总销售额。
self.map = folium.Map([mlat, mlon], tiles=tiles, zoom_start=8)
locs = zip(self.data.LAT, self.data.LON, self.data.VALUE)
HeatMap(locs, radius=30, blur=10).add_to(self.map)
我试着使用绝对的sales值,也试着规范化sales/sales.sum((。两者都给出了类似的结果。
问题是:
热图显示,商店数量较多的地区的红色等级更高。即使这些商店加在一起的总销售额比一家遥远而孤立的大型商店的销售额要小得多。
预期行为:
我希望热图的强度应该使用每个商店的销售额,因为销售额是在zip对象中传递给热图插件的。
假设我有两个地区:A和B。
在A地区,我有三家商店:10+15+10=35总销售额
在B区,我有一家大商店:总销售额为100
我预计区域B的强度比区域a的强度更大。我注意到,只有当差异非常大时才会出现类似的行为(如果我尝试35对5000000,那么区域B变得更相关(。
我的CSV文件只是一个随机样本,如下所示:
LAT,LON,VALUE,DATE,DIFFLAT1,DIFFLON1
-22.4056,-53.6193,14,2010,0.0242,0.4505
-22.0516,-53.7025,12,2010,0.3137,0.6636
-22.3239,-52.9108,100,2010,0.0514,0.0002
-22.6891,-53.7424,6,2010,0.0002,0.7887
-21.8762,-53.6866,16,2010,0.7283,0.6180
-22.1861,-53.5353,11,2010,0.1420,0.2924
from folium import plugins
from folium.plugins import HeatMap
heat_df = df.loc[:,["lat","lon","weight"]]
map_hooray = folium.Map(location=[45.517999 ,-73.568184 ], zoom_start=12 )
格式:列表列表以及lat、lon和weight
heat_data = heat_df.values.tolist()
在地图上绘制
HeatMap(heat_data,radius=13).add_to(map_hooray)
保存地图
map_hooray.save('heat_map.html')