在迭代图的for循环上使用plt.savefig返回空白图像

时间:2020-05-27 06:58:23

标签: python matplotlib

好的,所以我很抱歉以前是否有人问过这个问题,但是在我想保存到计算机上某个目录的某些地块上尝试执行plt.savefig时遇到了一些问题。

我目前通过以下代码生成了481个图:

ID=np.array(table['ID'])

我的ID数组来自一个天文表的隔离列,我将该表做成一个数组以匹配其他变量的格式。

path=str('/Volumes/Desktop/Folder')
filename=str('/Filename_ID_')
outfilename=path+filename
outfilename
yra = [0, 3]


def PLOTS(M,P,Match,Mean,P25,P50,P75):
    ax=plt.subplot();
    return (plt.figure(),
            ax.plot(M,P,'b',lw=2),
            ax.plot((Match*np.ones(2)), yra, 'red',lw=3, label='match'),
            ax.plot((P25*np.ones(2)), yra, 'b--', label='P25'),
            ax.plot(P50*np.ones(2), yra, 'c--', label='P50',linewidth=4),
            ax.plot(P75*np.ones(2), yra, 'r--', label='P75'),
            ax.plot(Mean*np.ones(2), yra, 'darkgoldenrod',label='mean'),
            ax.set_xlabel('M',fontsize=14),
            ax.set_ylabel('P',fontsize=14),
            ax.legend(fontsize=10,loc='upper right'),
            plt.savefig(outfilename+str(ID)+'.pdf')));

for i in range(len(M)):
    print(PLOTS(M, P[i],Matches[i],Mean[i],P25[i],P50[i],P75[i]))
    plt.savefig(outfilename+str(ID[i])+'.pdf')

这会输出我的图,但是当我去检查桌面上的文件夹时,图像为空白。 我知道,如果您在plt.savefig()之前执行plt.show(),那么这就是为什么您会得到空白图像的原因,但是我根本没有执行plt.show()。 我试图在函数和for循环的plt.savefig命令之后添加plt.show()命令,但是我仍然想出一个空白图像。

我还检查了其他与我类似的帖子,例如How do I save a new graph as png with every iteration of a loop,但这仍然没有解决我的问题。

非常感谢你们提供的任何帮助,如果有人提出这个问题,我们再次表示歉意。

0 个答案:

没有答案