for循环

时间:2016-01-28 19:19:30

标签: matplotlib

我想在for循环中使用subplot2grid,但似乎无法将imshow附加到循环变量:

ax1 = plt.subplot2grid((6,8), (0,0), colspan=4, rowspan=2) 
ax2 = plt.subplot2grid((6,8), (2,0), colspan=4, rowspan=2)
ax3 = plt.subplot2grid((6,8), (0,4), colspan=6, rowspan=2)
ax4 = plt.subplot2grid((6,8), (2,4), colspan=6, rowspan=2)
ax5 = plt.subplot2grid((6,8), (4,0), colspan=4, rowspan=2)

galaxies= [...]
a=[ax1, ax2, ax3, ax4, ax5]

for i in range(0,5):
  image = mpimg.imread(galaxies[i]+'_CombinedHistogram.png')
  a[i].imshow(image)

plt.show()

在这一行:

a[i].imshow(image)

我收到以下错误消息:'AxesSubplot'对象不支持索引。

我已经看到了这个答案:Multiple `subplot2grid` in a for loop,但绝对没有办法在for循环中使用subplot2grid和'axes'对象吗?我觉得我错过了什么。谢谢你的任何澄清!

编辑:代码

1 个答案:

答案 0 :(得分:1)

您要将a中的项目设置为字符串,而不是您创建的轴对象。

更改

a=['ax1', 'ax2', 'ax2', 'ax4', 'ax5']

a=[ax1, ax2, ax3, ax4, ax5]

(还有一个错误,你曾两次使用ax2,没有ax3