如何在 folium Heatmap 中实现权重?

Laz*_*ano 7 python folium

我正在尝试向我的 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)
Run Code Online (Sandbox Code Playgroud)

我尝试使用绝对销售值,并且还尝试标准化 sales/sales.sum()。两者都给了我类似的结果。

问题是:

热图显示商店较多的区域的红色水平更强。即使这些商店的总销售额比遥远且孤立的大型商店的销售额要小得多。

预期行为:

我希望热图的强度应该使用每个商店的销售额值,因为销售额在 zip 对象中传递给 HeatMap 插件。

假设我有 2 个区域:A 和 B。
在区域 AI 有 3 家商店:10 + 15 + 10 = 35 总销售额。
BI地区有1家大店:总销售额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
Run Code Online (Sandbox Code Playgroud)

小智 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 )
Run Code Online (Sandbox Code Playgroud)

格式:列表列表以及纬度、经度和重量

heat_data = heat_df.values.tolist()
Run Code Online (Sandbox Code Playgroud)

将其绘制在地图上

HeatMap(heat_data,radius=13).add_to(map_hooray)
Run Code Online (Sandbox Code Playgroud)

保存地图

map_hooray.save('heat_map.html')
Run Code Online (Sandbox Code Playgroud)