Fixed patch relative to axes

Hi,

Is there an easy way to draw a patch or a patchcollection such that it always stays at the same relative position in a set of axes, rather than at the same pixel position? So for example, I would want to plot it at (0.1,0.1) relative to the axes, and if I zoom in I would still want it to stay at (0.1,0.1)

Thanks for any advice,

Thomas

Thomas Robitaille wrote:

Hi,

Is there an easy way to draw a patch or a patchcollection such that it always stays at the same relative position in a set of axes, rather than at the same pixel position? So for example, I would want to plot it at (0.1,0.1) relative to the axes, and if I zoom in I would still want it to stay at (0.1,0.1)

With ipython -pylab:

ax = gca()
ax.fill([0.1, 0.2, 0.15], [0.1, 0.1, 0.15], transform=ax.transAxes)
draw()

then pan, zoom at will.

Eric

Thanks!

Is there an easy way to keep a reference to patches? I notice that for example

p = ax.add_patch(Circle((0.5,0.5),radius=0.5))

does not work (p is not a reference to the patch). Is there a way to keep a reference so I can update the properties of the patch at a later time?

Cheers,

Thomas

···

On 29 Apr 2009, at 21:13, Eric Firing wrote:

Thomas Robitaille wrote:

Hi,
Is there an easy way to draw a patch or a patchcollection such that it always stays at the same relative position in a set of axes, rather than at the same pixel position? So for example, I would want to plot it at (0.1,0.1) relative to the axes, and if I zoom in I would still want it to stay at (0.1,0.1)

With ipython -pylab:

ax = gca()
ax.fill([0.1, 0.2, 0.15], [0.1, 0.1, 0.15], transform=ax.transAxes)
draw()

then pan, zoom at will.

Eric

Thomas Robitaille wrote:

Thanks!

Is there an easy way to keep a reference to patches? I notice that for example

p = ax.add_patch(Circle((0.5,0.5),radius=0.5))

does not work (p is not a reference to the patch). Is there a way to keep a reference so I can update the properties of the patch at a later time?

Split the command up:
p = Circle(...)
ax.add_patch(p, ...)

(add_* could be modified to return the reference; maybe this would be worthwhile.)

Eric

···

Cheers,

Thomas

On 29 Apr 2009, at 21:13, Eric Firing wrote:

Thomas Robitaille wrote:

Hi,
Is there an easy way to draw a patch or a patchcollection such that it always stays at the same relative position in a set of axes, rather than at the same pixel position? So for example, I would want to plot it at (0.1,0.1) relative to the axes, and if I zoom in I would still want it to stay at (0.1,0.1)

With ipython -pylab:

ax = gca()
ax.fill([0.1, 0.2, 0.15], [0.1, 0.1, 0.15], transform=ax.transAxes)
draw()

then pan, zoom at will.

Eric

Eric Firing wrote:

Split the command up:
p = Circle(...)
ax.add_patch(p, ...)

(add_* could be modified to return the reference; maybe this would be worthwhile.)

+1

···

--
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...

Christopher Barker wrote:

Eric Firing wrote:

Split the command up:
p = Circle(...)
ax.add_patch(p, ...)

(add_* could be modified to return the reference; maybe this would be worthwhile.)

+1

Done in r7077.

Eric

Thanks!

Thomas

···

On 1 May 2009, at 15:04, Eric Firing wrote:

Christopher Barker wrote:

Eric Firing wrote:

Split the command up:
p = Circle(...)
ax.add_patch(p, ...)

(add_* could be modified to return the reference; maybe this would be
worthwhile.)

+1

Done in r7077.

Eric

------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations
Conference from O'Reilly Media. Velocity features a full day of
expert-led, hands-on workshops and two days of sessions from industry
leaders in dedicated Performance & Operations tracks. Use code vel09scf
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users