ホームページ  >  記事  >  バックエンド開発  >  同時計算のためにコード実行から matplotlib プロットを切り離す方法は?

同時計算のためにコード実行から matplotlib プロットを切り離す方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 16:55:03459ブラウズ

How to detach matplotlib plots from code execution for concurrent computation?

同時計算のための取り外し可能な Matplotlib プロット

データ視覚化の領域では、対話型プロットの生成は多くの場合重要な側面です。人気の Python ライブラリである Matplotlib は、静的で対話型のプロットを作成する機能を提供します。ただし、継続的な計算を可能にするために matplotlib プロットをコード実行から切り離そうとすると、制限が発生する可能性があります。

課題: コード実行からプロットを切り離す

次の点を考慮してください。 Python コード スニペット:

from matplotlib.pyplot import *
plot([1,2,3])
show()
# other code

このコードを実行すると、プロット ウィンドウが表示されます。ただし、問題は、プログラムがさらに計算を進める前にプロット ウィンドウを終了する必要があることにあります。プログラムが計算を続行している間、中間結果を対話的に探索することは不可能になります。

解決策: 非ブロッキング Matplotlib 呼び出しを使用します

この課題を克服するために、matplotlib は次のようないくつかの呼び出しを提供します。コードの実行をブロックせずに使用できます。そのような呼び出しの 1 つは、draw() です。次の変更を組み込むことにより、

from matplotlib.pyplot import plot, draw, show
plot([1,2,3])
draw()
print('continue computation')

# at the end call show to ensure window won't close.
show()

このコードを実行すると、プログラムが他の計算タスクを続行している間、プロット ウィンドウがすぐに表示されます。 draw() 関数は、コードの実行をブロックすることなくプロットを効果的に更新します。

もう 1 つの方法は、matplotlib で対話型モードを使用することです。

from matplotlib.pyplot import plot, ion, show
ion() # enables interactive mode
plot([1,2,3]) # result shows immediatelly (implicit draw())

print('continue computation')

# at the end call show to ensure window won't close.
show()

matplotlib で対話型モードを有効にします。ion( ) 呼び出しを使用すると、draw() を明示的に呼び出す必要がなく、計算の進行に応じてプロットをリアルタイムで更新および表示できます。最後に show() を呼び出すと、プロット ウィンドウが開いたままになります。

以上が同時計算のためにコード実行から matplotlib プロットを切り離す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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