Hi,

Thanks for your reply ! The thread you pointed me to, was useful, though I
didnt uderstand everything in it yet.
However, I found that the following works for what I want ... though it does
what I want, am I making some horrible mistake which will come around and
haunt me later ?

plsub = subplot(1,1,1)
plaxis = axis([0, n 0, m])
start = plsub._position.p0
stop = plsub._position.p1

plsub._position.p0 and p1 store the normalised coordinates of the subplot
box, it seems, which is what I need for now.

thanks!
Mohan

On Wed, Apr 1, 2009 at 7:54 PM, Jae-Joon Lee <lee.j.j...@gmail.com> wrote:

> This thread might be helpful.
>
> http://thread.gmane.org/gmane.comp.python.matplotlib.general/16373
>
> Take a look at the above thread and see if it fits your need.
>
> However, it became tricky if your axes adjust its position (e.g.,
> aspect=1) during the drawing time.
> The example below will be helpful in those case (you need recent
> version of matplotlib for this, see if your axes has
> "set_axes_locator" method), but this requires some knowledge on how
> mpl works.
>
>
> import matplotlib.transforms
>
> class InsetPosition(object):
>    def __init__(self, parent, lbwh):
>        self.parent = parent
>        self.lbwh = lbwh # position of the inset axes in the
> normalized coordinate of the parent axes
>
>    def __call__(self, ax, renderer):
>        bbox_parent = self.parent.get_position(original=False)
>        trans = matplotlib.transforms.BboxTransformTo(bbox_parent)
>        bbox_inset = matplotlib.transforms.Bbox.from_bounds(*self.lbwh)
>        bb = matplotlib.transforms.TransformedBbox(bbox_inset, trans)
>        return bb
>
> ax = gca()
> ax.set_aspect(1.)
> axins = axes([0, 0, 1, 1])
> ip = InsetPosition(ax, [0.5, 0.1, 0.4, 0.2])
> axins.set_axes_locator(ip)
>
>
> IHTH,
>
> -JJ
>
>
>
>
> On Wed, Apr 1, 2009 at 8:22 AM, oyarsa the old <oyars...@gmail.com> wrote:
> > Hello,
> >
> > I am new to matplotlib and pylab.
> > I have an image plotted with imshow/contour, or even just a coordinate
> > system plotted with axis.
> >
> > I need to plot smaller contours/images on them at selected pixels. The
> only
> > way I can figure how to do that is using axes. However, axes is defined
> on
> > normalised coordinates which cover the entire window, whereas the axis of
> > the main figure is drawn within it, with some margin.
> >
> > My problem is how to get the correct coordinates for plotting each of the
> > smaller figures ? The easiest way to do so would be to get the normalised
> > coordinates of the rectangle which is drawn by axis. Is there a way to
> get
> > that?
> >
> > Thanks
> > Mohan.
> >
> >
> ------------------------------------------------------------------------------
> >
> > _______________________________________________
> > Matplotlib-users mailing list
> > Matplotlib-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
> >
>
------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to