首頁 >後端開發 >Python教學 >如何將 matplotlib 繪圖與並發計算的程式碼執行分離?

如何將 matplotlib 繪圖與並發計算的程式碼執行分離?

Linda Hamilton
Linda Hamilton原創
2024-11-07 16:55:03534瀏覽

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

用於並發計算的可分離Matplotlib 圖

在資料視覺化領域,互動式圖的產生通常是一個至關重要的方面。 Matplotlib 是一個受歡迎的 Python 函式庫,提供建立靜態和互動式繪圖的功能。但是,使用者在嘗試將 matplotlib 圖與程式碼執行分離以允許持續計算時可能會遇到限制。

挑戰:將圖形與程式碼執行分開

考慮以下內容Python程式碼片段:

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

執行此程式碼後,會出現一個繪圖視窗。然而,問題在於必須先退出繪圖窗口,然後程式才能繼續進行進一步的計算。在程式繼續計算的同時對中間結果進行互動式探索變得不可能。

解決方案:使用非阻塞 Matplotlib 調用

為了克服這一挑戰,matplotlib 提供了幾個調用,可以在不阻塞程式碼執行的情況下使用。此類呼叫之一是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() 函數可以有效地更新繪圖,而不會阻塞程式碼執行。

另一種方法是在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn