我想生成几个图表并将其保存为.png
个文件。
但似乎matplotlib与前一个图表重叠:
def do_pie(fic,data):
import pylab
# make a square figure and axes
pylab.figure(1, figsize=(6,6))
ax = pylab.axes([0.1, 0.1, 0.8, 0.8])
pylab.pie(data,labels=data)
pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})
pylab.savefig('%s.png' % fic,dpi=100)
do_pie('tarte',[10,20,30])
do_pie('gateau',[33,44])
此脚本生成2个PNG文件。
tarte.png
是正确的,但gateau.png
正在获取有关tarte.png
的一些信息,例如10
,20
和30
,不应显示。
那么如何从头开始新图表?
答案 0 :(得分:3)
保存后关闭图形对象。
def do_pie(fic,data):
import pylab
# make a square figure and axes
pylab.figure(1, figsize=(6,6))
ax = pylab.axes([0.1, 0.1, 0.8, 0.8])
pylab.pie(data,labels=data)
pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})
pylab.savefig('%s.png' % fic,dpi=100)
pylab.close()
答案 1 :(得分:0)
例如,您可以将图形实例存储在dict中,并在程序的末尾输出所有数字:
figures = dict()
def do_pie(fic,data):
import pylab
# make a square figure and axes
figures[fic] = pylab.figure(figsize=(6,6))
ax = pylab.axes([0.1, 0.1, 0.8, 0.8])
pylab.pie(data,labels=data)
pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})
do_pie('tarte',[10,20,30])
do_pie('gateau',[33,44])
for fig in figures:
figures[fig].savefig('%s.png' % fic, dpi=100)