【问题标题】:leaflet jupyter plot color density heat map传单 jupyter 绘图颜色密度热图
【发布时间】:2023-03-27 04:10:01
【问题描述】:

我正在研究 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不太忙的地图。

【问题讨论】:

    标签: python leaflet jupyter


    【解决方案1】:

    由于last version of ipyleaflet 现在可以创建热图:

    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,你可以在documentation找到例子

    【讨论】:

    • 生成的热图与每个位置的密度指针不同
    • 在ipyleaflet的当前状态下,你只能得到与你给出的截图类似的东西。您的第一个选择是使用 Heatmap 小部件。第二个是在地图上显示圆圈小部件列表,圆圈的颜色/不透明度取决于密度。
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2018-06-03
    • 2021-01-17
    • 2020-12-26
    • 1970-01-01
    • 2013-07-19
    相关资源
    最近更新 更多