Matplotlib窗口出现在后面?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib窗口出现在后面?相关的知识,希望对你有一定的参考价值。
每当我在matplotlib中调用show()
时,绘图窗口会出现在所有其他窗口后面,我必须尽量减少所有内容才能看到它。有什么方法可以阻止这个或以编程方式将它带到前面。在OSX Lion上。 Python 2.7
好。这个答案在对已接受的答案的评论中提出,但我认为它应该有一个单独的地方,因为它很好地解决了这个问题。除了作者的问题,我还有问题,matplotlib窗口不在活动窗口的托盘中,所以我无法切换到<Alt>+<Tab>
。
改变matplotlib的默认后端macosx
解决了一切。你可以在你的代码中立即尝试这样:
import matplotlib
matplotlib.use("Qt5agg")
Qt5agg
可能不会出现在你的系统中,那么请选择那个。你可以找到它们:
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
如果它有帮助,那么您可能希望在配置中更改后端。为此,首先找到它:
import matplotlib
matplotlib.matplotlib_fname()
然后改变backend:
值:
backend : macosx
到你的后端。我最后用过:
backend : TkAgg
不完全是你的问题的答案,但我使用ipython而不是默认的python控制台。当用ipython --pylab
启动时,我可以绘制例如通过打字
>> plot([1,3,2])
并在前面弹出情节。它还有一些非常好的功能;)
Matplotlib开发人员似乎意识到了这个问题。但是看看https://github.com/matplotlib/matplotlib/issues/596看起来似乎要等一段时间才能得到一个解决方案,显然是因为有些人觉得这个数字令人讨厌。显示(“窃取”屏幕空间。
它可能是特定于操作系统的,但是使用交互式绘图(在您指示后立即绘制)会导致数字在Ubuntu上生成后立即出现在前台:
import pylab as P
P.ion()
P.figure(1)
P.plot([1,2,3],[1,4,9])
我和nickponline有相同的设置。对我有用的是:
from pylab import get_current_fig_manager()
get_current_fig_manager().window.raise_()
如果您有多个数字,这只会提升当前活动的数字。对于这种情况,我发现以下工作:
fig1=figure(1)
cfm1=get_current_fig_manager().window
fig2=figure(2)
cfm2=get_current_fig_manager().window
...
cfm1.activateWindow()
cfm1._raise()
pause(.1) # or something else that uses up some time
cfm2.activateWindow()
cfm2.raise_()
以上是关于Matplotlib窗口出现在后面?的主要内容,如果未能解决你的问题,请参考以下文章
为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误
在linux里用python(2.7)的matplotlib后,调用 show()之后无法显示图像,不会出现图形窗口。