我有一个for循环想绘制多个图形,但它们是互相绘制的,我到底做错了什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有一个for循环想绘制多个图形,但它们是互相绘制的,我到底做错了什么?相关的知识,希望对你有一定的参考价值。
我有这段代码,它应该返回多个图形,但由于某些原因我无法理解(从未遇到过这个问题)。我得到了多个图形,但是当它在循环中迭代时,第一个图形之后的图形包含了之前所有的图形。
for x in np.arange(0,3):
t1= table.iloc[x,2]
t2= table.iloc[44,2]
dts = np.arange(-0.02,0.02,0.0001)
cc = np.zeros(len(dts))
for i,dt in enumerate(dts):
n1,v=np.histogram(t1,899*100)
n2,v=np.histogram(t2-dt,bins=v)
cc[i] = np.corrcoef(n1,n2)[0,1]
plt.plot(dts,cc)
#plt.title(str(table[table['ClusterNames']==test1.iloc[x,0]].iloc[0,0])+'_'+str(table[table['ClusterNames']==test1.iloc[x,1]].iloc[0,0]))
filename='step'+str(x).zfill(6)+'.png'
plt.savefig(filename, form='png', dpi = 96, transparent = True)
我到底做错了什么?
谢谢!我有这样的代码,它应该是在循环中包含所有之前的图形。
答案
有很多方法可以解决这个问题。如果要在保存后清空图形,你可以添加以下内容 plt.clf()
到循环的末端。要在一页纸上绘制所有内容,您可以使用 plt.subplot2grid
或 plt.subplots
.
另一答案
如果你想让每个数字在不同的窗口中,你应该添加 plt.figure()
之前 plt.plot()
以上是关于我有一个for循环想绘制多个图形,但它们是互相绘制的,我到底做错了什么?的主要内容,如果未能解决你的问题,请参考以下文章