绘制 geopandas 会更改 matplotlib 中的图形大小
Plotting geopandas changes figure size in matplotlib
所以我创建了一个 matplotlib 图,然后通过形状文件添加 3 个(德国、斯洛伐克、捷克)国家。
我明确地将 figsize 设置为 (15, 15)
。 germany
、czech
、slovakia
是读取的形状文件,最后 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'
所以我创建了一个 matplotlib 图,然后通过形状文件添加 3 个(德国、斯洛伐克、捷克)国家。
我明确地将 figsize 设置为 (15, 15)
。 germany
、czech
、slovakia
是读取的形状文件,最后 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'