【问题标题】:How to add a projection to axis in matplotlib when using subplot2grid?使用 subplot2grid 时如何在 matplotlib 中向轴添加投影?
【发布时间】:2021-04-28 15:26:02
【问题描述】:

我正在尝试使用 cartopy 在五个不同的子图中绘制五张地图。我想要做的是在上排绘制三个地图,在下排绘制剩余的两个地图,但是将这两个最后的子图集中起来。我设法使用以下方法添加子图轴:

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = plt.subplot2grid((2, 6), (0, 0), colspan=2)
ax2 = plt.subplot2grid((2, 6), (0, 2), colspan=2)
ax3 = plt.subplot2grid((2, 6), (0, 4), colspan=2)
ax4 = plt.subplot2grid((2, 6), (1, 1), colspan=2)
ax5 = plt.subplot2grid((2, 6), (1, 3), colspan=2)

但是我找不到使用制图投影创建这些子图的方法。通常,对于偶数个子图,我会这样做:

import cartopy.crs as ccrs
fig, Ax = plt.subplots(nrows=2,ncols=3, subplot_kw=dict(projection=ccrs.PlateCarree()),constrained_layout=True)

但我不知道如何使用 subplot2grid 来做到这一点。这是可能的,还是有另一种方法可以在 matplotlib 中创建跨越多行或多列的地图?

【问题讨论】:

    标签: python matplotlib cartopy


    【解决方案1】:

    subplot2grid 的文档 有

    **kwargs  
         Additional keyword arguments are handed to add_subplot.
    

    并且add_subplot 支持projection= 关键字参数。因此

    ax1 = plt.subplot2grid((2, 6), (0, 0), colspan=2, projection=ccrs.PlateCarree())
    

    就是你所需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 2011-01-11
      • 2016-02-29
      • 2012-08-04
      • 2016-05-26
      • 2017-01-12
      • 1970-01-01
      相关资源
      最近更新 更多