Screen location

Hi all!

I’m actually working with Matplotlib/Pylab Interface for making 2D plot. I need to specify screen location where the frame will appear and I don’t know how. Supose a simple example like:

from pylab import *

t = arange(0.0,10,0.01)
s = 20sin(2pit)
c = 20
cos(2pit)

figure(1)
plot(s)
figure(2)
plot©
show()

If I do it in this way, one frame is hidded behind the other one. How can I modify frames attributes in order to change their position on the screen?

Thanks in advance,
Miquel

pylab doesn't explicitly support this -- I have encouraged backend
maintainers to attach the window instance to the figure manager
instance, but I am not sure of all backends support this (GTK* and Tk
do...). The window instance will be a GUI specific widget. Eg in the
GTK* backends, a gtk.Window

fig = figure()
fig.canvas.manager.window.move(100,400)

and other methods at

http://www.pygtk.org/pygtk2reference/class-gtkwindow.html#method-gtkwindow--set-position

If you need a lot of control, you are advised to embed mpl into a GUI
app, eg see examples/embedding*.py in the mpl examples dir

http://matplotlib.sourceforge.net/examples/http://matplotlib.sourceforge.net/examples/

JDH

···

On 9/19/07, Yo mismo Hotmail <miqueltfc@...287...> wrote:

Hi all!

I'm actually working with Matplotlib/Pylab Interface for making 2D plot. I
need to specify screen location where the frame will appear and I don't know
how. Supose a simple example like:

from pylab import *

t = arange(0.0,10,0.01)
s = 20*sin(2*pi*t)
c = 20*cos(2*pi*t)

figure(1)
plot(s)
figure(2)
plot(c)
show()

If I do it in this way, one frame is hidded behind the other one. How can I
modify frames attributes in order to change their position on the screen?

Dear John,

First of all, thanks for your response. When I try this

fig = figure()
fig.canvas.manager.window.move(100,400)

python tells me that window has no attribute move. It’s strange because I can choose many differents attributes like

fig.canvas.manager.window
<Tkinter.Tk instance at 0x019100F8>

fig.canvas.manager.window.attributes
<bound method Tk.wm_attributes of <Tkinter.Tk instance at 0x019100F8>>

fig.canvas.manager.window.frame
<bound method Tk.wm_frame of <Tkinter.Tk instance at 0x019100F8>>

Then I’ve got a window class from Tk, but not the attriburte move. I need to install Tkinter apart? Pylab suports differents GUIs. When you install matplotlib/pylab package wich backends are installed? All?

I know embedding it’s a good option, but for the moment it’s too much work for me. I’ve got not enought time. My programe has got differents modules that call pylab plots, and a simple GUI which call this modules. I hope I can move canvas frames. In the future I’ll embedding matplotlib with some package like wxmpl, but in the future.

Thanks again,
Miquel

···

On 9/20/07, John Hunter <jdh2358@…287…> wrote:

On 9/19/07, Yo mismo Hotmail <miqueltfc@…287…> wrote:

Hi all!

I’m actually working with Matplotlib/Pylab Interface for making 2D plot. I
need to specify screen location where the frame will appear and I don’t know

how. Supose a simple example like:

from pylab import *

t = arange(0.0,10,0.01)
s = 20sin(2pit)
c = 20
cos(2pit)

figure(1)
plot(s)
figure(2)

plot©
show()

If I do it in this way, one frame is hidded behind the other one. How can I
modify frames attributes in order to change their position on the screen?

pylab doesn’t explicitly support this – I have encouraged backend

maintainers to attach the window instance to the figure manager
instance, but I am not sure of all backends support this (GTK* and Tk
do…). The window instance will be a GUI specific widget. Eg in the
GTK* backends, a gtk.Window

fig = figure()
fig.canvas.manager.window.move(100,400)

and other methods at

http://www.pygtk.org/pygtk2reference/class-gtkwindow.html#method-gtkwindow–set-position

If you need a lot of control, you are advised to embed mpl into a GUI
app, eg see examples/embedding*.py in the mpl examples dir


http://matplotlib.sourceforge.net/examples/http://matplotlib.sourceforge.net/examples/

JDH

Well, the example I posted was for a *gtk* window, not a tk window.
You will need to look at the API for the tk window to make the correct
call. We do not provide an abstract API across the GUI windows we
utilize internally. We give you access to the widget, and if you
want to make GUI specific calls on it, good luck, but this is not
encouraged or supported.

JDH

JDH

···

On 9/21/07, Yo mismo Hotmail <miqueltfc@...287...> wrote:

Dear John,

First of all, thanks for your response. When I try this

fig = figure()
fig.canvas.manager.window.move(100,400)

python tells me that window has no attribute move. It's strange because I
can choose many differents attributes like

John Hunter wrote:

fig = figure()
fig.canvas.manager.window.move(100,400)

Well, the example I posted was for a *gtk* window, not a tk window.

And, for what it's worth, wx spells it "Move()", with a capital "M".

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@...259...