python axes.ravel() IndexError: too many indices for array

python axes.ravel() IndexError: too many indices for array

我正在尝试绘制 2*2 个图像。使用下面的代码。

fig, axes = plt.subplots(nrows=2, ncols=2)
ax = axes.ravel()
ax[0, 0].imshow(im1px, cmap='gray')
ax[0, 1].imshow(im2px, cmap='gray')
ax[1, 0].imshow(im3px, cmap='gray')
ax[1, 1].imshow(im3px, cmap='gray')

它会抛出这样的错误信息 '''

    IndexError                                Traceback (most recent call last)
    in 
      1 fig, axes = plt.subplots(nrows=2, ncols=2)
      2 ax = axes.ravel()
----> 3 ax[0, 0].imshow(im1px, cmap='gray')
      4 ax[0, 1].imshow(im2px, cmap='gray')
      5 ax[1, 0].imshow(im3px, cmap='gray')

    IndexError: too many indices for array

''' 请帮忙告知如何解决

为什么要使用 ravel

您收到错误是因为 ravel 展平了 2x2,然后您使用的是二维索引。

>>> fig, axes = plt.subplots(nrows=2, ncols=2)
>>> axes.shape
(2, 2)
>>> axes.ravel().shape
(4,)

而是使用

axes[0,0]axes[0,1]...等等