ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib While ループでリアルタイム プロットを実現するにはどうすればよいですか?

Matplotlib While ループでリアルタイム プロットを実現するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-06 04:33:17998ブラウズ

How to Achieve Real-Time Plotting in a Matplotlib While Loop?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。