Python 使用cartopy打印地图时,如何修改边距?

Python 使用cartopy打印地图时,如何修改边距?,python,matplotlib,cartopy,Python,Matplotlib,Cartopy,我使用cartopy(以下代码)绘制世界地图。我已经设置为ax=fig.add_轴([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,

我使用cartopy(以下代码)绘制世界地图。我已经设置为
ax=fig.add_轴([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_轴([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())
    
    结果:


    您正在创建两个轴

  • ax=fig.add_轴([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())
    
    结果:


    非常感谢!我明白了。误差是我做的两个轴。我刚才添加了
    plt.tight_layout(pad=0)
    来强制图像拉伸到最大尺寸,事实上,它在第二个轴上工作。非常感谢!我明白了。误差是我做的两个轴。我刚才添加了
    plt.tight_布局(pad=0)
    来强制图像拉伸到最大尺寸,事实上,它在第二个轴上工作。