8

ソケット接続から受信した y 軸のデータに基づいて、散布図を動的に更新したいと考えています。これを行うためにインタラクティブモードでpython matplot libを使用しましたが、動的更新中にウィンドウを別の場所に移動するか、ウィンドウを最小化すると、プロットの更新が突然停止します。これを行う方法?

ここで使用されているサンプルの動的更新コードを添付しましたが、ここでも同じ問題が発生します。

import matplotlib.pyplot as plt
import random
import time
items = [25.5,26.7,23.4,22.5,20,13.4,15.6,-12,-16,20]
x = [1,2,3,4,5,6,7,8,9,10]

plt.ion() #  Interactive on

for i in range(1,100):
    plt.title('graph plotting')
    plt.ylabel('temperature') 
    plt.xlabel('time')
    random.shuffle(items)
    plt.plot(x,items,'ob-')
    plt.axis([0, 10, -40, 40])
    plt.draw()
    #time.sleep(2)
    plt.clf()
    plt.close()
4

2 に答える 2

4

このページには、matplotlib と wxPython を使用した動的プロットの例がいくつか含まれています。そして、これが PyQt を使用したバージョンです。

于 2009-12-21T16:01:22.190 に答える
2

これを機能させるには、イベント処理用のメイン ループと、ウィンドウのサイズ変更または更新時にプロットを再描画するための独自のイベント ハンドラーが必要です。

これに関する多くの例は、Web またはチュートリアルで見つけることができます。

これは、matplotlib インタラクティブ モードを使用するのではなく、UI ツールキット (例: wxPython )を使用して処理するのが最適だと思います。過去に同様の質問があり、いくつかの適切な回答がありました

于 2009-12-21T15:27:25.833 に答える