2012-01-22 14 views
4

次のコードプログラムの実行中にMatplotlibプロットを更新するには?

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() 

は2つの素敵な図を作成します。しかし、ウィンドウを閉じることなくコンテンツをどのように更新しますか?

1つのスレッドでウィンドウを作成する必要があります。変数がメインコードで更新されている間に、変数を使用してウィンドウが更新されています。

どうすればよいですか?

答えて

6

いくつかのオプションがあります。 mpl examplesを使用した素晴らしい例です。 2番目のループはあなたの自己ループを書いているので、何が起こっているのかを理解することができます。ここで ではなく、ショーのpylab.draw()関数を()を使用して、簡単な例であり、それは空想ではありませんが、それはあなたが基本的なものを理解することができるようになります:

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) 

私はこのことができます願っています。

関連する問題