Python colorbar:如何在for循环中停止重复

时间:2017-03-24 13:25:02

标签: python matplotlib

我写了一个for循环来生成一组图像:

for p in range(0,153):
im=plt.imshow(M[p,0:28,:].T,extent=[0,time.max(),depth.max(),0],aspect='auto')
plt.tight_layout()
cbar=plt.colorbar(im,orientation='vertical')
cbar.set_label('Vz[mm]')
plt.title('Rohdaten '+str(p)+'. Umlauf D874 Ch5')
plt.xlabel('Messzeit[s]')
plt.ylabel('Messtiefe[mm]')
savefig(os.path.join('/Users/gaoyingqiang/Desktop/1-153Umlauf',str(p)+'.png'))

但它改变了图像中的颜色条像: weird isn't it?

我无法理解为什么颜色条会重复。

1 个答案:

答案 0 :(得分:1)

如果我正确解释了不完整的代码,您需要保存不同的数字,每个数字都带有一个颜色条。

  1. 您可以通过关闭旧图plt.close("all")来实际创建不同的数字而不是一遍又一遍地操作相同的数字。
  2. 您可以使用plt.clf()清除旧图,从而对同一个但清空的人物进行操作。
  3. 示例:

    for p in range(0,153):
    
        im=plt.imshow(M[p,0:28,:].T,extent=[0,time.max(),depth.max(),0],aspect='auto')
        plt.tight_layout()
        cbar=plt.colorbar(im,orientation='vertical')
        cbar.set_label('Vz[mm]')
        plt.title('Rohdaten '+str(p)+'. Umlauf D874 Ch5')
        plt.xlabel('Messzeit[s]')
        plt.ylabel('Messtiefe[mm]')
        savefig(os.path.join('/Users/gaoyingqiang/Desktop/1-153Umlauf',str(p)+'.png'))
        plt.close("all")