首页 > 解决方案 > 传单 jupyter 绘图颜色密度热图

问题描述

我正在研究 pandas csv 数据框,并在 jupyter 中使用ipyleaflet你可以绘制到地图来了解。

到目前为止,我的代码看起来像这样

from ipyleaflet import Map, Marker, MarkerCluster

longitudes = df['Longitude'].values.tolist()
latitudes = df['Latitude'].values.tolist()

markers = []

for lon,lat in zip(longitudes, latitudes):
    markers.append(Marker(location=(lat, lon)))

m = Map(center=(latitudes[0], longitudes[0]), zoom=10)

marker_cluster = MarkerCluster(
    markers=markers
)

m.add_layer(marker_cluster);

m

在此处输入图像描述

这很好,但后来我看到了这个

在此处输入图像描述

我也有同样的领域Economic Need Index,所以我也想做同样的事情,也很好奇我如何也能切换到CartoDB不太繁忙的地图。

标签: pythonleafletjupyter

解决方案


ipyleaflet 的最新版本开始,现在可以创建 HeatMap:

from ipyleaflet import Map, Heatmap
from random import uniform

m = Map(center=[0, 0], zoom=2)

# Create a random heatmap
locations = [
    [uniform(-80, 80), uniform(-180, 180), uniform(0, 1000)] # lat, lng, intensity 
    for i in range(1000)
]
heat = Heatmap(locations=locations, radius=20, blur=10)
m.add_layer(heat)

# Change some attributes of the heatmap
heat.radius = 30
heat.blur = 50
heat.max = 0.5
heat.gradient = {0.4: 'red', 0.6: 'yellow', 0.7: 'lime', 0.8: 'cyan', 1.0: 'blue'}

m

此外,如果您想切换到“不太繁忙的地图”,您可以在创建底图时更改它:

from ipyleaflet import Map, basemaps

m = Map(center=(52, 10), zoom=8, basemap=basemaps.CartoDB.DarkMatter)
m

您还可以根据瓷砖的 url 创建一个 TileLayer,您可以在文档中找到示例


推荐阅读