Matplotlib 投影去除边距

Matplotlib projection remove margin

这是在

之上创建的美国各县的图片
ax = plt.axes(projection=ccrs.LambertConformal())
ax.set_extent([-120, -70, 20, 50], ccrs.Geodetic())

plt.show()可以看到的"live"图中,图形周围有一大片灰色区域。在这里你可以(不)通过白色填充看到它。

所以我想我可以再放大一点:

ax.set_extent([-120, -70, 20, 40], ccrs.Geodetic())

然后事情发生了:

虽然图形周围仍有白色 margin/padding,但突然被裁剪了。 "live image" 还向我展示了一些显然位于投影周围的白色边距。

我试了plt.tight_layout(),确实去除了很多边距,但留下了一些(第二张图片是在收紧布局后拍摄的)。这种不可见的边距使得 ax.set_extent() 变得特别困难,因为直到可以扩展地图的地方我才能看到。

有什么方法可以去除投影周围所有隐藏的 padding/margin 吗?

您可以使用 subplots_adjust:

要删除 Axes 对象周围的所有空格,请使用:

fig.subplots_adjust(left=0, right=1, bottom=0, top=1)

设置 extent 正在更改数据限制,而不是 Axes 的 position/size。