savefig循环添加了以前的图表

zal*_*a19 12 python plot for-loop matplotlib

我正在尝试使用forloop为我拥有的每组数据生成数字,但是当.show()命令生成正确的数字时,.savefig()会继续将先前绘制的值添加到新数字中.在我的forloop中,这是代码的相关示例.

import matplotlib.pyplot as plt
plt.plot(X,Y[:,0],'o-')
plt.xlabel('x')
plt.savefig('plot'+str(i)+'.png')
Run Code Online (Sandbox Code Playgroud)

作为比较,这里是savefig图,这里是show()所示.可以看出,savefig()图也绘制了之前的结果.

Ser*_*ity 27

使用函数保存后,您必须关闭当前数字 plt.close():http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.close

或者您必须在保存之后清理当前数字plt.clf():http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.clf


nor*_*man 6

plt.clf()在每次循环中清除绘图 之前,我制作了一些漂亮的图表。散点图1 散点图2

换句话说,我之前的图也被添加到一个图中,如上面的图所示,也在我的 for 循环中。每次通过循环添加 [ plt.clf()] 来清除绘图修复了在顶部开始循环迭代之前清除图形以使用新绘图创建新图形的问题。

太长了;我plt.clf()每次都通过循环来清除情节。