2012-04-30 14 views
14

Immer wenn ich in Matplotlib show() aufrufen, erscheint das Diagrammfenster hinter allen anderen Fenstern und ich muss alles minimieren, um es zu sehen. Gibt es eine Möglichkeit, dies zu verhindern oder programmatisch an die Front zu bringen? Auf OSX Lion. Python 2.7Matplotlib-Fenster erscheint auf der Rückseite?

Antwort

1

Nicht genau eine Antwort auf Ihre Frage, aber ich verwende ipython anstelle der Standard-Python-Konsole. Wenn es mit ipython --pylab gestartet wird, kann ich z.B. durch die Eingabe

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

und haben die Handlung Pop-up vor. Es hat auch einige andere sehr nette Eigenschaften;)

+1

mir das gleiche Verhalten sowohl mit Python und ipython auf meinem 10.9.1 System erlebt, so dass es in jedem Fall nicht unbedingt eine Lösung ist. – anddam

+0

Das gleiche hier. Ich glaube, und Dam erlebt das gleiche Problem, das ich bin, das ist, dass das Matplotlib-Fenster _permanently_ hinter allen anderen Fenstern ist. Ich kann es nicht scharfstellen, selbst wenn ich es in der Missionskontrolle anklicke. Die einzige Problemumgehung, die ich bisher herausgefunden habe, ist die Verwendung der Missionskontrolle, um das Fenster vorübergehend in ein leeres Feld zu verschieben, dann zu diesem Feld zu wechseln, das Fenster scharfzustellen und dann das Fenster _back auf mein ursprüngliches Feld _ zu ziehen Z-Reihenfolge wird schließlich korrekt sein (es sei denn, ich klicke auf ein anderes Fenster, wodurch es sofort wieder in den Hintergrund zurückkehrt). –

+1

** Update: ** Das TkAgg-Backend hat nicht das gleiche Problem; Es wird ein Fenster auf oberster Ebene zugewiesen (d. h. Sie können mit Cmd-Tab zu diesem Fenster wechseln). Es beginnt immer noch am unteren Rand der Z-Reihenfolge, aber es verhält sich jetzt normal. Ich denke, es muss einen Fehler im MacOSX-Backend in Mavericks geben. –

0

Es kann OS-spezifisch sein, aber unter Verwendung von interaktiven Plotten (die so bald Plots, wie Sie anweisen) bewirkt, dass Zahlen in den Vordergrund kommen, sobald wie sie auf Ubuntu gemacht sind:

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

Matplotlib Entwickler scheinen, dieses Problem zu kennen. Aber wenn man nach https://github.com/matplotlib/matplotlib/issues/596 schaut, sieht es so aus, als würde es eine Weile dauern, bis eine Lösung gefunden wird, anscheinend weil einige Leute es als störend empfinden, dass figur.show() den Bildschirmraum "stiehlt".

0

Ich habe das gleiche Setup wie Nickpinline. Was für mich funktioniert ist:

Wenn Sie mehrere Zahlen haben, erhöht dies nur die derzeit aktive. Für diesen Fall fand ich, dass die folgenden Werke:

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

die Import-Zeile hat eine abschließende '()', scheint auch keine Fenster-Eigenschaft in FigureManager zu sein – anddam

Verwandte Themen