簡體   English   中英

繼續繪制 window 在 Matplotlib 中打開

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM