Before I look into this further: what version of mpl are you using?

Mark Bakker wrote:
> I seem to have tracked down the problem.
> After calling the aspect_ratio function, the data limits don't get set.
> When a new axis with sharex is called, it gets the old data limits.
> After I call draw() or ax.draw() the datalimit gets set correctly.
> And creating a subplot with sharex works fine.
> Maybe the datalimit needs to be set at the end of the aspect_ratio function?
> (I presume that is part of the draw() command)
> Mark
> 
> from pylab import *
> 
> x,y = meshgrid(linspace(0,5,5),linspace(0,5,5))
> 
> figure()
> ax = subplot(211)
> ax.contour(x,y,x)
> ax.set_aspect('equal',adjustable='datalim')
> print ax.get_xlim()  # Prints 0 to 5 while datalimit is much larger
> draw()
> print ax.get_xlim()  # Now datalimit is correct and sharex works
> ax2 = subplot(212,sharex=ax)
> draw()
> 
> On Feb 11, 2008 9:56 AM, Mark Bakker <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
> 
>     Hello -
> 
>     I have a hard time getting aspect_ratio to work correctly with sharex.
>     This used to work quite a while ago, and has been broken for a long
>     time (or at least I don't know how to get it to work)
>     But I finally found the time to put a simple example together to
>     determine if I do something wrong, or whether this can be fixed easily.
> 
>     When I make a small contour plot setting the aspect ratio equal
>     works fine:
> 
>     from pylab import *
> 
>     x,y = meshgrid(linspace(0,5,5),linspace(0,5,5))
> 
>     figure()
>     ax = subplot(211)
>     ax.contour(x,y,x)
>     ax.set_aspect('equal',adjustable='datalim')
>     draw()
> 
>     Note that the datalim on the x-axis is expanded, as the data limit
>     on the y-axis is the determining factor.
> 
>     If I now try to do the same thing while linking the x-axis of a
>     second subplot to the first one, then
>     the same call to set_aspect changes the data limit on the y-axis
>     while keeping the x-axis fixed.
>     That seems inconsistent and is not the behavior I want:
> 
>     figure()
>     ax = subplot(211)
>     ax.contour(x,y,x)
>     ax2 = subplot(212,sharex=ax)
>     ax.set_aspect('equal',adjustable='datalim')
>     draw()
> 
>     Any idea what I am doing wrong?
> 
>     Thanks, Mark
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to