【问题标题】:pyplot imshow() return for loop with multiple subplotspyplot imshow() 返回带有多个子图的循环
【发布时间】:2020-07-17 21:08:43
【问题描述】:
data.shape
(800, 49, 6)

我想循环执行此操作,但我也想控制各个颜色条。 如何将 ax[].imshow() 的返回值分配给稍后可以引用的数组?

# 6 plots in one row
fig,ax = plt.subplots(1,6)  
im0 = ax[0].imshow(data[:,:,0])
im1 = ax[1].imshow(data[:,:,1])
im2 = ax[2].imshow(data[:,:,2])
im3 = ax[3].imshow(data[:,:,3])
im4 = ax[4].imshow(data[:,:,4])
im5 = ax[5].imshow(data[:,:,5])
fig.colorbar(im5,extend='max')

想要这个循环。如何将 im[] 声明为接受来自ax.imshow() 的返回的类型?

for i in np.arange(6):
  im[i] = ax[i].imshow(data[:,:,i])
fig.colorbar(im[5],extend='max')
``

【问题讨论】:

    标签: loops matplotlib imshow


    【解决方案1】:

    创建一个空列表并将元素附加到循环中。

    im = []
    for i in np.arange(6):
      im.append(ax[i].imshow(data[:,:,i]))
    fig.colorbar(im[5],extend='max')
    

    可以简化为列表理解(但这可能更难阅读):

    im = [ax[i].imshow(data[:,:,i]) for i in np.arange(6)]
    

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 2017-12-08
      • 2023-04-04
      • 2012-08-23
      • 1970-01-01
      • 2012-10-16
      • 2014-01-24
      • 2013-12-26
      • 1970-01-01
      相关资源
      最近更新 更多