使用几何点获取数据以绘制热图?

2024-04-20 09:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

请原谅,如果标题让人困惑,英语不是我的主要语言,我会尽可能地解释我自己,而且,我不擅长制图,我正在学习

我的代码使用“几何体中的点”和“地理坐标板”在形状文件表示上绘制点。我想用我的数据创建一个热图。一些研究表明,为了这样做,我需要有一个表示“热量”大小的值,我可以使用我已有的点创建这样的数据列吗,例如,如果在绘图的xy区域有很多点,那么该点的值将表示小而明亮的热量

这是我的密码:

import pandas as pd
import matplotlib.pyplot as plt
import descartes
import geopandas as gpd
from shapely.geometry import Point, Polygon

street_map = gpd.read_file('shape_files/Street_Network_Database_(SND).shp')

fig, ax = plt.subplots(figsize=(15,15))

street_map.plot(ax=ax, color="grey", alpha=0.3)

df = pd.read_csv('data.csv')
crs = {"init":"epsg:4326"}

geometry = [Point(xy) for xy in zip(df["longitude"], df["latitude"])]

geo_df = gpd.GeoDataFrame(df, crs=crs, geometry=geometry)

geo_df.plot(ax = ax, markersize = 10, color = "blue", marker = "o", label = "POI")

以下是此代码的结果:

enter image description here


Tags: 数据代码importstreetdfaspltax
2条回答

您可以通过geoplot包中的内核密度估计来实现这一点

检查这里的语法:geoplot.kdeplot

以及页面底部的geopandas示例:Plotting with Geoplot and GeoPandas

您可以仅从纬度和经度列表中使用^{}轻松制作热图:

import folium
from folium.plugins import HeatMap

seattle_map = folium.Map(location=[47.6062, 122.3321], zoom_start = 13) 

heatmap_data = list(map(list, zip(df['latitude'], df['longitude'])))

HeatMap(heatmap_data).add_to(seattle_map)

seattle_map

相关问题 更多 >