每个循环再多一个颜色条

时间:2016-04-21 13:27:50

标签: python matplotlib colorbar

我有一点问题,目前我还没有找到解决方案。我有一个脚本,可以在循环中创建大量数字。我循环第一个文件,制作10个数字,然后我拿第二个文件等...

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

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

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

mButton.setOnClickListener((View v) -> {
    // Do whatever you want here
});

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

解决方案:

我补充说:

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)

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

1 个答案:

答案 0 :(得分:2)

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

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()

我测试过前面的例子并且对我有效。