python axes.ravel()IndexError:数组的索引过多

时间:2019-12-18 07:41:44

标签: python axes index-error

我正在尝试绘制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

''' 请帮助说明如何解决

1 个答案:

答案 0 :(得分:0)

您为什么要使用ravel

由于ravel使2x2变平,然后使用2d索引,因此出现错误。

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

相反,只需使用

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