2016-11-30 5 views
0

私はパンダのデータフレームから更新されたプロットを成功させようとしています。私の問題:プロットウィンドウは表示されません(非表示ではありません - それについては確信しています)。python(pandas?)ライブプロット

私は既に再構築して、さまざまなソリューションをstackoverflowから変更しようとしました。私の最近の試みはthis postに基づいています。純粋なコピー、貼り付けが機能するので、問題は私の変更に含まれている必要があります。

毎秒自動的に更新したいので、これに変更しました。

import serial as s 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
from time import sleep 

data = pd.DataFrame(np.random.random((10,10))) # I want to use pandas because 
# of easier timestamp handling 

fig, ax = plt.subplots() 
ax.set(title='title') 
im = ax.imshow(data) 

while True: 
    im.set_data(np.random.random((10,10))) 
    print "hello" #just to see if sth happens 
    fig.canvas.draw() 
    sleep(1) 

plt.show() 

だけで説明する:その後、私は、シリアルポートからのデータを読み、私のデータを視覚化し得るためにプロットにそれらを餌にしたいです。

まあ、あなたが期待するものです:提供されたコードは、毎秒こんにちは印刷しますが、プロットは表示されません。何か案は?私は彼らから外れています。

ところで、私は、この種の問題が見つかるのは簡単で、真っ直ぐな解決策がないことに驚いています。私は想像することができます、更新されたプロットをしようとしている人がいますか?

+1

に役立ちます。 – Lafexlos

+0

これをチェックしましたかhttp://stackoverflow.com/questions/4098131/how-to-update-a-plot-in-matplotlibまたはhttps://www.lebsanft.org/?p=48? – Lafexlos

+0

@Lafexlos:実際、plt.show()はやや冗長ですが、fig.canvas.draw()はプロットを表示することになっています。そして私は両方のあなたの提案されたリンクをチェックしましたが、私が目指していた結果を得ていませんでした。 – Robert

答えて

1

あなたは

from pylab import * # import matplotlib before drawnow 
from drawnow import drawnow, figure 
from time import sleep 
import numpy as np 

def draw_fig_real(): 
    imshow(data, interpolation='nearest') 

data = np.random.random((10,10)) 

figure() 
for i in range(10): 
    data = np.random.random((10,10)) 
    sleep(0.5) 
    drawnow(draw_fig_real) 

関数drawnow希望をパッケージを使用することができ、これはtrue`をそうあなたのコードは `show`部に到達することはありませんしながら、あなたは`から抜け出すことはありません

+0

すぐに試してみるだけではありませんが、それは有望です! – Robert