12

I am running Python 2.7.2 on Mac 10.8 with matplotlib 1.1.1. The backend I am using is MacOSX. If I run any plotting code e.g.

import matplotlib.pyplot as plt
plt.plot([1,2,3], [4,5,6])
plt.show()

the plot window always appears on a different desktop from the one I am working on. This behaviour is the same if I use ipython or if I run a script. Is there a way around this? It's annoying to have to go and hunt for the plot each time!

emma
  • 103
  • 6
  • This does not fix the different-desktop issue, but I use ipython, and specifically ipython-notebook at least partially for the inline graphics. So no floating windows. – Caleb Hattingh May 29 '13 at 00:45

3 Answers3

1

If you previously moved it with OSX's desktop management commands you can fix it like this:

Right click (Command click) on the Python Icon of the Matplotlib Icon in the Dock. Under Options there are options to assign the "application" to Desktops. Set to none. If it still opens in another desktop, move it to desktop you want it on (one way is to click and hold the header of the window... press Ctrl-#, where # is the desktop you want it on)

Joop
  • 7,840
  • 9
  • 43
  • 58
0

Source

import matplotlib
matplotlib.use("wx")
from pylab import *
figure(1)
plot([1,2,3,4,5])
thismanager = get_current_fig_manager()
thismanager.window.SetPosition((500, 0))
show()

For TkAgg, just change it to:

thismanager.window.wm_geometry("+500+0")
Community
  • 1
  • 1
Brian Cain
  • 14,403
  • 3
  • 50
  • 88
  • 1
    Thanks for your comment, but this does not work for me. I used the TkAgg version but the plot still appears on a different desktop. – emma Nov 13 '12 at 22:15
  • 1
    Did you try changing the coordinates? – Brian Cain Nov 13 '12 at 22:18
  • 1
    Yes. I have run this line by line in ipython. After the figure(1) command, the computer switches to the desktop where the plot is going to appear. I then go back to where I started, finish typing the rest and then the plot appears on the desktop it switched to previously. – emma Nov 14 '12 at 18:35
0

I found this to be pretty helpful actually: matplotlib window layout questions

Although, it seems that Brian has beat me to it. Have you checked out WXAgg?

>>> import matplotlib
>>> matplotlib.get_backend()
'WXAgg'
Community
  • 1
  • 1
astromax
  • 6,001
  • 10
  • 36
  • 47