以下代码
plt.figure(1)
plt.subplot(211)
plt.axis([0,100, 95, 4000])
plt.plot(array1,array2,'r')
plt.ylabel("label")
plt.xlabel("label")
plt.subplot(212)
plt.specgram(array3)
plt.show()
创建两个漂亮的图表。但是,如何在不关闭窗口的情况下更新其内容?
我需要在一个线程中创建窗口,并且在主代码中更新变量时,正在使用变量更新窗口。
你会怎么做?
答案 0 :(得分:6)
有几个选择: 一个是使用mpl examples的好例子。 第二个是写你自己的循环,这样你就可以理解发生了什么。 这是一个使用pylab.draw()函数而不是show()的简单示例,它不是很花哨,但它可以让你理解基本的东西:
import pylab
import time
pylab.ion() # animation on
# Note the comma after line. This is placed here because
# plot returns a list of lines that are drawn.
line, = pylab.plot(0,1,'ro',markersize=6)
pylab.axis([0,1,0,1])
line.set_xdata([1,2,3]) # update the data
line.set_ydata([1,2,3])
pylab.draw() # draw the points again
time.sleep(6)
line1, = pylab.plot([4],[5],'g*',markersize=8)
pylab.draw()
for i in range(10):
line.set_xdata([1,2,3]) # update the data
line.set_ydata([1,2,3])
pylab.draw() # draw the points again
time.sleep(1)
print "done up there"
line2, = pylab.plot(3,2,'b^',markersize=6)
pylab.draw()
time.sleep(20)
我希望这会有所帮助。