ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib While ループでリアルタイム プロットを実現するにはどうすればよいですか?
Matplotlib を使用した While ループでのリアルタイム プロット
この質問では、ユーザーは OpenCV を使用してリアルタイムでデータをプロットしようとします。マットプロットライブラリ。ただし、リアルタイム プロットは意図したとおりに機能しません。ユーザーは、プロットが一度に 1 つずつポイントを設定するのではなく、ループが終了するまで待機する簡略化された例を提供します。
この問題に対処するには、matplotlib がどのようにプロットをリアルタイムで更新するかを理解する必要があります。デフォルトでは、matplotlib は plt.show() への関数呼び出しを予期してプロットを表示し、プロット ウィンドウが閉じるまでブロックします。この動作により、データをリアルタイムでプロットできなくなります。
解決策は、plt.pause() 関数を使用することです。 plt.pause(0.05) は、新しいデータを描画し、GUI のイベント ループを実行して、プロットを 0.05 秒間一時停止します。これにより、プロットがリアルタイムで更新され、マウス操作に応答できるようになります。
リアルタイムで 10 点を正常にプロットする修正コードは次のとおりです。
import numpy as np import matplotlib.pyplot as plt plt.axis([0, 10, 0, 1]) for i in range(10): y = np.random.random() plt.scatter(i, y) plt.pause(0.05) plt.show()
この調整により、プロットは次のようになります。生成された各ポイントが表示されるようになり、リアルタイムの視覚化が可能になります。
以上がMatplotlib While ループでリアルタイム プロットを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。