如何在folium热力图中实现权重?

7

我想在我的folium热力图层中添加权重,但我无法弄清如何正确实现。

我有一个包含3列的数据框:LAT,LON和VALUE。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)

我尝试使用绝对销售值和归一化销售额/销售总额进行计算,两种方法得到的结果相似。

问题是:

热力图显示拥有更多商店的地区红色程度更强。即使这些商店的总销售额远小于一个遥远孤立的大型商店的销售额。

期望行为:

我希望热力图的强度应该使用每个商店的销售额,因为销售额被传递到了HeatMap插件中。

假设我有两个地区:A和B。
在A地区,我有3家商店:10 + 15 + 10 = 35的总销售额。
在B地区,我有1家大型商店:100的总销售额。

我期望区域B的强度比区域A更高。我发现只有当差异非常大时(如果我尝试35与5000000的差异),才会出现类似的情况。

我的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

我也在寻找解决方案。 - chitown88
您也在寻找同样的解决方案吗? - agenis
有一个帖子说这可能是一个错误,正在修复或最近发布: https://github.com/python-visualization/folium/issues/1271 - agenis
1个回答

0
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 )

格式:列表的列表,以及纬度、经度和权重

heat_data = heat_df.values.tolist()

在地图上绘制它

HeatMap(heat_data,radius=13).add_to(map_hooray)

保存地图

map_hooray.save('heat_map.html')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接