我需要使用来自不同文件的数据在同一个pdf文件中保存不同的图。 我使用这个代码,每个步骤打开某个文件使用一些函数分析它 并保存在pdf文件中。 我的问题是matplotlib的队列增加了,最后如果我说plt.show()我得到了大量不同的数字。我不想要这个,我想清理maplotlib的队列而不看情节。
我使用的代码是:
mu=arange(0.01,20.,0.03)
info1=[]
info2=[]
for i in range(0,7):
inf1=[]
inf2=[]
pathe = path +"%i/"%(i)
nameplot= "time_traces_%d.pdf"%(i)
pp=PdfPages(nameplot)
for j in mu:
filename="InfoDati_"+"%lf_"%(j)+"%d.txt"%(i)
fil = pathe + filename
data=loadtxt(fil)
t=data[:,0]
x=data[:,1]
y=data[:,2] # y, z should be the simulation, x the sin
z=data[:,3]
x=array(x)
y=array(y)
z=array(z)
t=array(t)
fig=filename
fig=plt.figure()
plt.plot(t,x,t,y,t,z)
plt.xlim(0,500)
pp.savefig(fig)
pp.close()
`
如果现在我输入plt.show()我有数百万的数字.. 我需要退出plt.plot的队列,或类似的东西!
最大的问题是,对于很多情节来说,队列变得如此之大以至于一切都崩溃了,而且终端说'杀了' 并退出ipython。
感谢您的帮助!
答案 0 :(得分:1)
我不确定我是否理解这个问题,但是这部分代码表明您不确定自己在做什么,所以这可能就是错误所在:
fig=filename # useless
fig=plt.figure() # you're creating a figure that you never destroy
plt.plot(t,x,t,y,t,z)
plt.xlim(0,500)
pp.savefig(fig)
pp.close() # this shouldn't be inside this loop
filename
分配给fig
,因为在下一行中您将plt.figure()
分配给同一个变量pp.close()
时,会关闭您当前正在保存图片的pdf文件。但是你在循环中做了这个,即使在它之外创建了pp
。plt.close(fig)
。尝试删除额外的行,在循环之后将pp.close()
移动到某处,在循环中添加plt.close(fig)
并查看是否修复了问题