Python で複雑な計算を実行する場合、対話型の視覚化を通じて中間結果を監視すると有益な場合があります。ただし、 matplotlib.pyplot.show() を呼び出すと、通常、Figure が閉じられるまでそれ以上の計算がブロックされます。これにより、長時間実行されるタスクの効率が妨げられる可能性があります。
このブロック動作は回避できますか?
はい、計算プロセスから matplotlib プロットを切り離すことは可能です。両方を同時に進めることができます。これにより、プログラムが計算を続行しながら、結果を対話的に調べることができます。
ノンブロッキング メソッドの利用
matplotlib が提供する 2 つのノンブロッキング関数を実装して、これを実現します:
例:
from matplotlib.pyplot import plot, draw, show plot([1,2,3]) draw() print('continue computation') # Display the plot after computation completes show()
例:
from matplotlib.pyplot import plot, ion, show ion() # Enables interactive mode plot([1,2,3]) # Figure updates immediately print('continue computation') # Display the plot after computation completes show()
結論として、draw() を活用するか、ion() で対話モードをアクティブにすることにより、計算がバックグラウンドで進行している間、matplotlib プロットの対話性を維持することが可能になります。この手法により、複雑な計算やインタラクティブなデータ視覚化を含むワークフローの効率が大幅に向上します。
以上がmatplotlib プロットは計算中にインタラクティブな状態を維持できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。