停止pylab覆盖图?

Cat*_*gia 5 python overlay matplotlib

在我的代码中,我试图定期创建图形并将图形保存到文件中.代码如下所示:

import pylab as p

def simpledist(speclist,totalbugs,a):
    data = [float(spec.pop)/float(totalbugs) for spec in speclist]
    p.hist(data)
    p.savefig('/Home/s1215235/Documents/python/newfolder/' + str(a) + '.png')
Run Code Online (Sandbox Code Playgroud)

(a是一个柜台)

但是,这样做意味着创建的每个新绘图都会一直覆盖在绘图上.我怎么能让它知道,一旦我保存了这个数字,我想让它开始一个新的数字?

dan*_*van 8

要清除情节使用 p.clf

def simpledist(speclist,totalbugs,a):
    data = [float(spec.pop)/float(totalbugs) for spec in speclist]
    p.clf()
    p.hist(data)
    p.savefig('/Home/s1215235/Documents/python/newfolder/' + str(a) + '.png')
Run Code Online (Sandbox Code Playgroud)

假设这p是一个matplotlib.pyplot或一个figure实例,也是@bernie所说的 - 这也可以正常工作.

@ Yann的评论

如果您已经设置了标题,轴标签等,那么这将取消所有这些设置.更好的是按照他的说法去尝试

 p.gca().cla()
Run Code Online (Sandbox Code Playgroud)

保持你的辛勤工作.谢谢Yann!

  • 您可能还想建议`p.gca().cla()`,这样如果您有一个图标题等,并且您不想重做所有这些,只需更新轴即可.我想有一种更复杂的方式来更新直方图的数据. (4认同)