使用Folium绘制热力图时蓝色圆圈遮挡图层如何解决
问题根因
你代码中通过for循环批量添加了folium.CircleMarker实例,你看到的蓝色圆圈就是手动添加的点位标记,默认边框色为蓝色,且这部分图层位于热力图层上方,因此遮挡了下方的热力图色彩。
解决方案
根据你的使用需求可以选择以下任意一种方案:
- 方案1:不需要单独点位标记功能,直接删除整段添加CircleMarker的循环代码即可,修改后的核心代码如下:
m = folium.Map(location=[45.5291, -122.6768], zoom_start=12) # convert to (n, 2) nd-array format for heatmap crimeArr = crime[['OpenDataLat', 'OpenDataLon']] # plot heatmap m.add_child(plugins.HeatMap(crimeArr)) m
- 方案2:需要保留点击点位弹出犯罪类型的功能,只需要将CircleMarker的边框和填充设置为完全透明即可,修改CircleMarker的代码如下:
for index, row in crime.iterrows(): folium.CircleMarker([row['OpenDataLat'], row['OpenDataLon']], radius=1, popup=row['OffenseType'], fill_color="#3db7e4", color="transparent", # 隐藏蓝色边框 fill_opacity=0 # 隐藏填充色 ).add_to(m)
内容的提问来源于stack exchange,提问作者Amanda_Panda
相关产品推荐
相关产品推荐

