使用Matplotlib 跨後端以非阻塞方式繪圖
嘗試在不阻塞執行的情況下在Matplotlib 中繪製函數時,重要的是考慮所使用的後端的影響。雖然「show(block=False)」可能被建議作為解決方案,但其功能因後端而異。如所提供的問題所述,「show(block=False)」不會在 Qt4Agg 後端產生預期的非阻塞行為。
為了有效解決此問題,建議結合使用多種方法。首先,需要使用「plt.ion()」來啟動互動模式。這允許 GUI 在執行主代碼時處理事件。
接下來,應該在不使用 'block=False' 的情況下呼叫 'plt.show()' 以顯示繪圖視窗。至關重要的是,每次繪圖操作後都需要包含「plt.pause(.001)」。此暫停允許處理 GUI 事件,包括重新繪製繪圖。 'plt.pause()' 中指定的時間參數決定了暫停的持續時間。
透過組合'plt.ion()'、'plt.show()' 和'plt.pause(. 001)',無論使用什麼後端,都可以動態更新現有繪圖視窗而不會阻止執行。這種方法可確保繪圖保持回應並允許持續互動。
以上是如何讓 Matplotlib 繪圖在後端之間不阻塞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!