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 上引发错误

安装matplotlib?

JAVA编译时提示出现非法字符

在linux里用python(2.7)的matplotlib后,调用 show()之后无法显示图像,不会出现图形窗口。

css或者jquery怎么实现超出指定行数就在后面出现省略号

三菱PLC Q系列梯形图修改后为啥原来的还会出现在后面?怎么设置?