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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-08 00:24:16336ブラウズ

How Can I Achieve Real-Time Plotting Within a While Loop in Python?

while ループ内でリアルタイムにプロットする

開発者は、データ駆動型アプリケーションの一部としてデータをリアルタイムにプロットするという課題に頻繁に遭遇します。ただし、「while」ループ内でリアルタイム プロットを実装しようとすると、一般的な問題が発生します。

OpenCV を使用してランダムなデータ ポイントをリアルタイムでプロットすることを目的とした次の例を考えてみましょう。

fig = plt.figure()
plt.axis([0, 1000, 0, 1])

i = 0
x = list()
y = list()

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

残念ながら、このコードではリアルタイムで点を個別にプロットできません。代わりに、グラフを表示する前にループが完了するまでプログラムの実行を一時停止します。

リアルタイム プロットを有効にする鍵は、ループ内で plt.pause(0.05) 関数を呼び出すことにあります。この関数は、プロットを最新のデータで更新するだけでなく、GUI のイベント ループも実行します。これにより、ユーザーの対話が可能になり、ループの実行中にプロットの応答性と対話性が確保されます。

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

plt.pause(0.05) を組み込むことで、データ ポイントを実際にプロットする機能がロック解除されます。これにより、データがストリーミングされるときに視覚化できるようになります。

以上がPython の While ループ内でリアルタイム プロットを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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