每个循环多一个颜色条

One more colorbar at each loop

我有一个小问题,暂时没有找到解决办法。我有一个脚本,可以循环生成很多数字。我在第一个文件上循环,制作 10 个数字,然后我拿第二个文件等...

一切似乎都有效,但在我的最后一个图中,我得到了一个彩条,然后在第二个循环后有 2 个彩条,然后是 3 个等等......这个问题只出现在我的最后一个图中。

你对这类问题有什么想法吗?

这是我循环的最后一个情节的结尾:

fig = plt.gcf()

SN_map_final = (S_N_map - mean_SN) / sigma_SN

fig12 = plt.figure(12)
fig_SN_final = plt.imshow(SN_map_final)
cbar = plt.colorbar()
cbar.set_label(r'Signal to Noise (significance $\sigma$)')
plt.xlabel('X (arcmin)')
plt.ylabel('Y (arcmin)')
plt.title('Signal to Noise map')

fig12 = plt.savefig(outname12)

如果你有办法解决这个问题,谢谢;)

解决方案:

我补充说:

plt.clf()

在我的循环结束时它似乎有效

我只是修改了你的代码来绘制一些图像,然后我测试了它。问题是你保存后没有正确清除你的数字。因此,每次调用 plt 时,它都会获取当前图形(已经有一些图)并与新图形重叠。如果保存后清除Figure,则问题解决:

im = np.random.rand(100,100)

for i in xrange(10):
    fig12 = plt.figure(12)
    fig_SN_final = plt.imshow(im)
    cbar = plt.colorbar()
    cbar.set_label(r'Signal to Noise (significance $\sigma$)')
    plt.xlabel('X (arcmin)')
    plt.ylabel('Y (arcmin)')
    plt.title('Signal to Noise map')
    plt.savefig(str('%03d'%i)+'.png')
    plt.clf()

我测试了前面的示例并且对我有用。