【问题标题】:Matplotlib subplots inside a for loop一个 for 循环内的 Matplotlib 子图
【发布时间】:2016-06-17 03:07:20
【问题描述】:

我有一个函数,它接受三个数组和一个常量值作为输入。

在函数内部,我给出了 10 个带有条件的不同数组,并尝试将它们绘制在 10 个不同的子图中。

def ra_vs_dec(alpha,delta,zphot,mlim):
    zmin = [0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2]
    zmax = [0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3]
    plot_no = [1,2,3,4,5,6,7,8,9,10] # THESE ARE THE SUBPLOT NUMBERS

    for a,b,c in zip(zmin,zmax,plot_no):
        ra = alpha[(data_m200>mlim)*(data_z>a)*(data_z<b)] # RA FOR ZCOSMO
        dec = delta[(data_m200>mlim)*(data_z>a)*(data_z<b)] # DEC FOR ZCOSMO
        ra_zphot = alpha[(data_m200>mlim)*(zphot>a)*(zphot<b)] # RA FOR ZPHOT
        dec_zphot = delta[(data_m200>mlim)*(zphot>a)*(zphot<b)] # DEC FOR ZPHOT

        fig = plt.figure()
        ax = fig.add_subplot(2,5,c)
        ax.scatter(ra,dec,color='red',s=5.0,label=''+str(a)+'<zcosmo<'+str(b)+'')
        ax.scatter(ra_zphot,dec_zphot,color='blue',s=5.0,label=''+str(a)+'<zphot<'+str(b)+'')
        ax.legend(loc='best',scatterpoints=2)

    fig.show()

但是,当我运行上面的代码时,我只得到了最终的子图,即第 10 个子图。我在这里做错了什么?

我想查看所有 10 个子图。

【问题讨论】:

    标签: python for-loop matplotlib subplot


    【解决方案1】:

    将图形的创建移到循环之外。通过将其放入循环中,您将创建 10 个单独的图形,然后只为每个图形添加一个子图。当您随后使用fig.show() 时,它只会向您显示在最终迭代中创建的图形。

    fig = plt.figure()
    
    for a,b,c in zip(zmin,zmax,plot_no):
        ra = alpha[(data_m200>mlim)*(data_z>a)*(data_z<b)] # RA FOR ZCOSMO
        dec = delta[(data_m200>mlim)*(data_z>a)*(data_z<b)] # DEC FOR ZCOSMO
        ra_zphot = alpha[(data_m200>mlim)*(zphot>a)*(zphot<b)] # RA FOR ZPHOT
        dec_zphot = delta[(data_m200>mlim)*(zphot>a)*(zphot<b)] # DEC FOR ZPHOT
    
        ax = fig.add_subplot(2,5,c)
        ax.scatter(ra,dec,color='red',s=5.0,label=''+str(a)+'<zcosmo<'+str(b)+'')
        ax.scatter(ra_zphot,dec_zphot,color='blue',s=5.0,label=''+str(a)+'<zphot<'+str(b)+'')
        ax.legend(loc='best',scatterpoints=2)
    
    fig.show()
    

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2020-07-23
      • 2021-08-02
      • 2022-07-07
      • 2016-03-16
      • 2021-01-06
      • 2020-02-12
      • 2020-02-09
      相关资源
      最近更新 更多