2016-03-29 299 views
1

由於某些原因,我需要將關鍵字「block」明確設置爲True,以便在從bash shell運行腳本時顯示圖。 (當我從ipython shell運行它時,我不需要這些)。我怎麼能將這個參數設置爲True,因爲幾乎每個人似乎都擁有它?默認情況下,如何將plt.show()中的關鍵字「block」設置爲True?

樣品:

import matplotlib.pyplot as plt 

plt.plot([1,2,3], [1,2,3]) 

plt.show(block=True) 

我想曲線展現出來,即使該參數不設置爲True明確,那就是:

import matplotlib.pyplot as plt 

plt.plot([1,2,3], [1,2,3]) 

plt.show() 

我matplotlibrc包含:

後端:MacOSX

interactive:True

工具欄:toolbar2
時區:UTC

+0

如果調用了「plt.ion()」,則默認的阻止行爲由設置。 – tacaswell

+1

另外,你是否更改了rcparams文件中的'interactive'鍵? – tacaswell

+0

謝謝,@ tcaswell你能詳細說明一下嗎?我沒有叫plt.ion()。你的問題中有我的完整代碼。我想我下載了一個我在某處找到的rcparams文件。我會盡力找到該文件並讓你知道。 – drake

回答

2

MPL的 '互動' 模式決定的plt.show行爲。如果處於'交互式'模式,它假定還有其他管理GUI事件循環的東西。當運行腳本時

python -i script.py 

將使您進入交互式shell。在REPL中定位時,Python REPL循環與GUI事件循環之間存在集成,這允許GUI循環在後臺運行,這使得圖形「交互式」。如果在這種情況下「交互式」模式是而不是,則在關閉該數字之前,您將不會收到提示。

'interactive'模式可以通過調用plt.ion()或通過在matplotlibrc中設置'interactive'鍵來啓用。

我強烈建議您將rcparam的值保留爲False

相關問題