绘制 geopandas 会更改 matplotlib 中的图形大小

Plotting geopandas changes figure size in matplotlib

所以我创建了一个 matplotlib 图,然后通过形状文件添加 3 个(德国、斯洛伐克、捷克)国家。

我明确地将 figsize 设置为 (15, 15)germanyczechslovakia 是读取的形状文件,最后 germany_pipe 是一个 GeoDataFrame,它在 matplotlib 图形上添加了蓝线。

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

germany.plot(ax=ax, color='lightgray', edgecolor='white')

germany_pipe.plot(ax=ax, color='cornflowerblue',
                  linewidth=germany_pipe['diameter'].values/400)

czech.plot(ax=ax, color='lightgray', edgecolor='white')
slovakia.plot(ax=ax, color='lightgray', edgecolor='white')

这个图变成了下图:

然后我还绘制了另一个 GeoDataFrame,它通过以下方式将其他线条绘制为红色:data_geo.plot(ax=ax, color='red', linewidth=data_geo['diameter'].values/400)

然而,在这一点之后,matplotlib 图由于某种原因改变了大小。 你知道这是什么原因吗?

print(data_geo.crs)
None
print(germany_pipe.crs)
epsg:4326

在公共 ax 轴上正确绘制多个 geodataframes 需要正确设置所有这些轴的 CRS(坐标参考系统)。最好,它们都应该具有相同的 CRS,以便于操作,而无需(不必要地)在绘图指令中指定坐标转换。

要读取 gdf1 地理数据框的 CRS,可以使用:

gdf1.crs

如果您需要为此地理数据框设置 CRS(例如,'epsg:3395'),您可以执行以下操作。

gdf1.crs = 'epsg:3395'