2016-03-29 298 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

相关问题