我正在尝试绘制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
''' 请帮助说明如何解决
答案 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]
...等