首页 > 解决方案 > plt.save 不创建 png 文件

问题描述

我正在尝试使用 2 个键绘制位于字典中的数据。
每个键将代表单独的图像,请参见下面的代码:

for i in first_RTT :
    
    plot1=plt.figure()
    t1=[sum(Writex[i][m-w:m])/float(w) for m in range(w,len(Writex[i]),w)]
    x_axis1=np.array(t1)
    t2=[sum(first_RTT[i][m-w:m])/float(w) for m in range(w,len(first_RTT[i]),w)]
    y_axis1=np.array(t2)
    y_axisQD1=np.array(WriteQD[i][0:len(x_axis1)])
    med=np.percentile(y_axis1,50)
    med2=np.percentile(y_axisQD1,50)
    max=np.percentile(y_axisQD1,100)
    plt.subplot(2,1,1)
    plt.plot(x_axis1,np.array([med]*len(x_axis1)),label='Median = {} (us)'.format(med),color='red',linestyle='-.',linewidth=1.0)
    plt.plot(x_axis1,y_axis1,label='Latency - {} samples'.format(len(y_axis1)),linewidth=0.7)
    plt.legend(loc='best')
    plt.ylabel('Latency (us)')
    plt.xlabel('Time (s)')
    plt.title('1st RTT Latency\n' + PN+ ' ' +i)
    plt.subplot(2,1,2)
    plt.plot(x_axis1,np.array([max]*len(x_axis1)),label='Max = {}'.format(max),color='purple',linestyle='-.',linewidth=1.0)
    plt.plot(x_axis1,np.array([med2]*len(x_axis1)),label='Median = {} '.format(med2),color='red',linestyle='-.',linewidth=1.0)
    plt.plot(x_axis1,y_axisQD1,label='QD',color='green',linewidth=1.2)
    plt.legend(loc='best')
    plt.xlabel('Time (s)')
    plt.ylabel('Queue Depth')
    plt.title('QD Over Time')
    if not os.path.exists(dir+'\WRITE10'):
        os.mkdir(dir +'\WRITE10')
        plt.savefig(dir + '\WRITE10\First_RTT_Latency_'+PN+ '.png')
    else :
        plt.savefig(dir + '\WRITE10\First_RTT_Latency_'+PN+ '.png')

输出是仅保存的一张图像而不是 2,如果我执行 plt.show() 我可以看到两者。
知道会是什么问题吗?谢谢。

标签: pythonimagenumpymatplotlibplot

解决方案


推荐阅读