使用 cartopy 绘制地图时如何修改边距?
How can I modify the margins when I plot map with cartopy?
我使用cartopy(代码如下)绘制世界地图。我设置为ax = fig.add_axes([0, 0, 1, 1])
。但是,输出贴图总是在帧上显示较大的边距。我想将地图显示为全屏或全尺寸图像。
如何设置 cartopy 绘图的边距?
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS)
ax.outline_patch.set_visible(False)
plt.show()
您正在创建两个轴。
ax = fig.add_axes([0, 0, 1, 1])
这是紧贴图的坐标轴
ax = plt.axes(projection=ccrs.PlateCarree())
这是显示世界地图的轴,但有通常的边距。
您当然可以选择其中一个并删除另一个,例如
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
这将创建一个轴,它紧贴在图的一侧。原因是地图有固定的宽高比,和图中的不一样。
所以要使轴紧沿图的两侧,您还需要设置图的大小。世界地图的纵横比为 0.5,因为它在水平方向上有 360 个单位,在垂直方向上有 180 个单位。因此图形宽度需要是图形高度的两倍。例如。
fig = plt.figure(figsize=(7, 3.5))
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
结果:
我使用cartopy(代码如下)绘制世界地图。我设置为ax = fig.add_axes([0, 0, 1, 1])
。但是,输出贴图总是在帧上显示较大的边距。我想将地图显示为全屏或全尺寸图像。
如何设置 cartopy 绘图的边距?
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS)
ax.outline_patch.set_visible(False)
plt.show()
您正在创建两个轴。
ax = fig.add_axes([0, 0, 1, 1])
这是紧贴图的坐标轴ax = plt.axes(projection=ccrs.PlateCarree())
这是显示世界地图的轴,但有通常的边距。
您当然可以选择其中一个并删除另一个,例如
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
这将创建一个轴,它紧贴在图的一侧。原因是地图有固定的宽高比,和图中的不一样。
所以要使轴紧沿图的两侧,您还需要设置图的大小。世界地图的纵横比为 0.5,因为它在水平方向上有 360 个单位,在垂直方向上有 180 个单位。因此图形宽度需要是图形高度的两倍。例如。
fig = plt.figure(figsize=(7, 3.5))
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
结果: