使用 Python(没有 CSS)调整 Folium 中的热图不透明度

adjust heatmap opacity in Folium with Python (without CSS)

我只使用 Python 并且想调整热图的最大不透明度。正如您在下图中看到的,底图是完全不可见的。 我想看到更多底图。 如何调整 HeatMap 中的参数以便我可以仅使用 [=25= 增加热图图层的不透明度]?


here 中的问题完全相同,但它使用 leaflet.js 并且解决方案使用 CSS,而不是 Python。不管怎样,这是我用来制作地图的代码。

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

df = pd.read_csv("the_data.csv") # the data contains lat and long columns, I can't share the data...

coords = [(lat, lng) for lat, lng in zip(restaurants[0].lat.to_list(), restaurants[0].lon.to_list())]

m = folium.Map([-6.204725,106.847009], tiles="CartoDB dark_matter", zoom_start=14)

HeatMap(coords, 
        min_opacity=0.4,
        max_val = 0.5,
        gradient={.2: '#482d61', .5:"#5aa7d6", 1: '#fffaad'}).add_to(folium.FeatureGroup(name='Heat Map').add_to(m))
folium.LayerControl().add_to(m)

m.save("heatmap.html")

您尝试过使用其他图块和其他渐变颜色吗?

如果您需要城市细节,您当前使用的图块选项似乎没有用。我建议您使用具有常规渐变颜色的 'OpenStreetMap''Cartodb Positron'

是这样的,可以看到一些城市信息:

m = folium.Map([48., 5.], tiles='OpenStreetMap', zoom_start=6)

HeatMap(data, min_opacity=0.4.add_to(m)

如果您想坚持使用您正在使用的图块,我建议您使用模糊参数。

默认示例 blur = 15

m = folium.Map([48., 5.], tiles='CartoDB dark_matter', zoom_start=6)
HeatMap(data, min_opacity=0.4, blur = 15, gradient={.2: '#482d61', .5:"#5aa7d6", 1: '#fffaad'}).add_to(folium.FeatureGroup(name='Heat Map')).add_to(m)

示例 blur = 30

m = folium.Map([48., 5.], tiles='CartoDB dark_matter', zoom_start=6)
HeatMap(data, min_opacity=0.4, blur = 30, gradient={.2: '#482d61', .5:"#5aa7d6", 1: '#fffaad'}).add_to(folium.FeatureGroup(name='Heat Map')).add_to(m)

当然,模糊参数越大,解释数据就越困难。因为我不知道你的objective,我会让你决定什么最适合你。