[英]Keep plotting window open in Matplotlib
在編寫使用 matplotlib 的腳本時,當我運行腳本時,我暫時得到一個交互式圖形 window,在我查看 plot 之前它立即消失了。 如果我在 iPython 中以交互方式執行相同的代碼,圖形 window 將保持打開狀態。 我如何讓 matplotlib 保持 plot 在我運行腳本時生成圖形后保持打開狀態?
例如,我可以保存這個 plot,但我不能用show()
顯示它:
from matplotlib import pyplot as plt
import scipy as sp
x = sp.arange(10)
y = sp.arange(10)
plt.plot(x,y)
plt.show()
根據文檔 ,有一個實驗block
參數可以傳遞給plt.show()
。 當然,如果您的matplotlib版本不夠新,它將沒有此功能。
如果具有此功能,則應該可以將plt.show()
替換為plt.show(block=True)
以獲得所需的行為。
舊問題,但可能會使用更規范的答案,因為它僅使用已記錄的功能,而不使用實驗功能。
在腳本退出之前,進入非交互模式並顯示數字。 這可以使用plt.show()
或plt.gcf().show()
。 兩者都會阻止:
plt.ioff()
plt.show()
要么
plt.ioff()
plt.gcf().show()
在這兩種情況下,在關閉圖形之前, show
函數都不會返回。 第一種情況是阻塞所有圖形,第二種情況是僅阻塞直到一個圖形關閉。
您甚至可以使用matplotlib.rc_context
上下文管理器在程序中間臨時修改交互狀態,而無需進行其他任何更改:
import matplotlib as mpl
with mpl.rc_context(rc={'interactive': False}):
plt.show()
要么
with mpl.rc_context(rc={'interactive': False}):
plt.gcf().show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.