使用地貌大 pandas 绘制热图(Kdedit) [英] Plot heatmap (kdeplot) with geopandas

查看:18
本文介绍了使用地貌大 pandas 绘制热图(Kdedit)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将以下数据存储在geopandas.DataFrame对象中。geometry是多边形,x是我要用作热标的值。

       id                                           geometry   x
9   01001  POLYGON ((-102.10641 22.06035, -102.10368 22.0...   33
19  01002  POLYGON ((-102.05189 22.29144, -102.05121 22.2...    2
29  01003  POLYGON ((-102.68569 22.09963, -102.69087 22.0...    0
39  01004  POLYGON ((-102.28787 22.41649, -102.28753 22.4...    0
49  01005  POLYGON ((-102.33568 22.05067, -102.33348 22.0...   22

我可以使用以下代码绘制地图,并根据x列中的值为每个多边形上色。

t.plot(column='x', cmap='coolwarm', legend=False)
plt.axis('off')
plt.show()

这还不错,但考虑到我在单个对象中有多个面和值,我想知道是否有办法使用geopandas将此图转换为热图。

推荐答案

建议我使用geoplot

geoplot.kdeplot需要一个geopandas.DataFrame对象,每个Point一行。也就是说,类似以下内容:

        PointID                     geometry
0     204403876  POINT (-101.66700 21.11670)
1     204462769  POINT (-101.66700 21.11670)
2     144407530  POINT (-101.66700 21.11670)
3     118631118  POINT (-101.66700 21.11670)
4     118646035  POINT (-101.66700 21.11670)

然后在地图上绘制这些点,地图将作为单独的对象传递。

为了在代码中显示这一点,假设面存储在df_map中,点存储在df_points中。

# Import geoplot
import geoplot
import geoplot.crs as gcrs

# Plot heatmap
ax = geoplot.kdeplot(df_points, projection=gcrs.AlbersEqualArea())

# Add polygons
geoplot.polyplot(df_map, ax=ax)

这应该会产生一些类似的结果。

很遗憾,我无法发布我的结果,因为projection=gcrs.AlbersEqualArea()导致我的会话崩溃,但我希望这对将来的某个人有所帮助。

这篇关于使用地貌大 pandas 绘制热图(Kdedit)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆