Окно Matplotlib появляется сзади?

Всякий раз, когда я вызываю show() в matplotlib, окно графика появляется за всеми остальными окнами, и я должен минимизировать все, чтобы увидеть его. Есть ли способ предотвратить это или программно вывести его на передний план. На OSX Lion. Python 2.7

Ответы

Ответ 1

Не совсем ответ на ваш вопрос, но я использую ipython вместо стандартной консоли python. Когда он запускается с помощью ipython --pylab, я могу отобразить, например. набрав

>> plot([1,3,2])

и перед вами появится сюжет. Он также имеет некоторые другие очень приятные функции;)

Ответ 2

Разработчик Matplotlib, похоже, знает об этой проблеме. Но глядя в https://github.com/matplotlib/matplotlib/issues/596, похоже, что это будет какое-то время, пока вы не получите решение, по-видимому, потому что некоторые люди находят его раздражающим, что figure.show() "крадет" экранное пространство.

Ответ 3

Он может быть специфичным для ОС, но при использовании интерактивного графика (который вызывается, как только вы укажете) заставляет цифры выходить на передний план, как только они создаются на Ubuntu:

import pylab as P
P.ion()
P.figure(1)
P.plot([1,2,3],[1,4,9])

Ответ 4

У меня такая же настройка, как и для прокрутки. Что для меня работает:

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_()