gpt4 book ai didi

python - 在 Geopandas 中绘图时管理投影

转载 作者:行者123 更新时间:2023-12-01 01:14:58 29 4
gpt4 key购买 nike

我正在使用 geopandas 绘制意大利 map 。

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize = (20,30))

region_map.plot(ax=ax, color='white', edgecolor='black')
plt.xlim([6,19])
plt.ylim([36,47.7])
plt.tight_layout()
plt.show()

这就是将 region_map 正确定义为一 block “几何”GeoSeries 后的结果。

map of italy

但是,我无法修改图形纵横比,甚至无法改变 plt.subplots 中的 figsize 。我是否遗漏了一些微不足道的东西,或者可能是 geopandas 问题?

谢谢

最佳答案

您的源数据集 (region_map) 显然是在地理坐标系(单位:纬度和经度)中“编码”的。可以安全地假设您的情况是 WGS84(EPSG:4326)。如果您希望绘图看起来更像 Google map 中的效果,则必须将其坐标重新投影到多个投影坐标系之一(单位:米)。您可以使用全局可接受的 WEB MERCATOR (EPSG: 3857)。

Geopandas 让这一切变得尽可能简单。您只需要了解我们如何处理计算机科学中的坐标投影的基础知识,并通过 EPSG 代码学习最流行的 CRS。

import matplotlib.pyplot as plt

#If your source does not have a crs assigned to it, do it like this:
region_map.crs = {"init": "epsg:4326"}

#Now that Geopandas what is the "encoding" of your coordinates, you can perform any coordinate reprojection
region_map = region_map.to_crs(epsg=3857)

fig, ax = plt.subplots(figsize = (20,30))
region_map.plot(ax=ax, color='white', edgecolor='black')

#Keep in mind that these limits are not longer referring to the source data!
# plt.xlim([6,19])
# plt.ylim([36,47.7])
plt.tight_layout()
plt.show()

我强烈推荐阅读official GeoPandas docs关于管理预测。

关于python - 在 Geopandas 中绘图时管理投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54445754/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com