为什么pylab.savefig()在pylab.show()没有时会添加多个图,我怎么能让它停止?

时间:2016-02-06 12:08:19

标签: python matplotlib

我的程序计算了许多图表,每个图表都有多个图表。当使用pylab.show()执行时,它会显示窗口中的第一个图表,当我关闭该窗口时,它会显示第二个图表,依此类推,就好了。

使用pylab.savefig()时,第二个图包含第一个和第二个图中的图。

如何让savefig()不要累积图表?

这是我用来绘制图表的代码:

# generate multiple plots for the first diagram
label = 4
for i in nylonLengthLists:  # take a list of lists to generate multiple plots
    pylab.plot(windSpeeds,i, label=str(label) + ' m')
    label += 1

pylab.title('Leinenlaengen nach Tiefen')
pylab.ylabel('Leinenlaenge (m)')
pylab.xlabel('Windgeschwindigkeit (kn)')
pylab.legend(loc='upper left', title='Tiefen')
pylab.xticks()

pylab.grid()
pylab.savefig('diagram1.png')

# generate the plots for the second diagram

nylonLengthLists = []    # reset and regenerate the list of lists
for i in range(12,25,2):
    nylonLengthLists.append(nylonLengthList(i, chainLength, boatLength)) 

label = 12
for i in nylonLengthLists:    # generate multiple plots
    pylab.plot(windSpeeds,i, label=str(label) + ' m')
    label += 2

pylab.title('Leinenlaengen nach Tiefen')
pylab.ylabel('Leinenlaenge (m)')
pylab.xlabel('Windgeschwindigkeit (kn)')
pylab.legend(loc='upper left', title='Tiefen')
pylab.xticks()

pylab.grid()
pylab.savefig('diagram2.png')

1 个答案:

答案 0 :(得分:0)

pylab.show销毁图形实例后关闭matplotlib窗口。因此,将在下一个绘图命令中创建一个新的。

要获得不含show的多个数字,请在每次要开始新地图时调用pylab.figure