Python Matplotlib绘图';s在不需要时自动更改颜色

Python Matplotlib绘图';s在不需要时自动更改颜色,python,matplotlib,operating-system,delete-file,Python,Matplotlib,Operating System,Delete File,我看到一件奇怪的事 我有一个程序,可以在列表上循环,使用matplotlib绘制条形图,将图形保存到当前目录中的somefile.png,然后发送一封电子邮件附加图片,然后删除图像。(下一张图像将保存在同一位置) 现在,当我只发送一封电子邮件时,图表的颜色是默认的蓝色 但当我发送多封电子邮件时,我看到了颜色的扭曲。不同的图形具有完全不同的颜色,图形的顶部是一些混合颜色 有人能解释为什么吗?我能做些什么来避免这种情况 每一个情节都是独立完成的。 在删除图像文件后,我也给了2秒的睡眠时间,调用pl

我看到一件奇怪的事

我有一个程序,可以在列表上循环,使用matplotlib绘制条形图,将图形保存到当前目录中的somefile.png,然后发送一封电子邮件附加图片,然后删除图像。(下一张图像将保存在同一位置)

现在,当我只发送一封电子邮件时,图表的颜色是默认的蓝色

但当我发送多封电子邮件时,我看到了颜色的扭曲。不同的图形具有完全不同的颜色,图形的顶部是一些混合颜色

有人能解释为什么吗?我能做些什么来避免这种情况

每一个情节都是独立完成的。 在删除图像文件后,我也给了2秒的睡眠时间,调用
plt.close()
after
plt.savefig(path)
解决了这个问题

这解决了失真问题,并且所有绘图都获得了相同的颜色


感谢您对“重置循环器”的评论。

没有您的代码很难准确知道,但是matplotlib默认循环颜色。您可能没有在创建条形图和重置周期之间清除图形。非常感谢。我想这就是答案。但为什么会发生扭曲呢?我无法用一个简单的伪代码再现失真。我不知道为什么。在我的实际代码中,文件是在matplotlib保存后读取的。我引入了2秒的时间延迟,但是图像中仍然发生了失真。看这个!如果无法用简单的伪代码重现错误,请继续增加复杂性(逐块),直到恢复行为。在这一点上,您将确定行为的原因,或者认为错误是第23行的等号。