Hmm. It seems that the adjustable='box-forced' option to set_aspect does work. I don't know what went wrong the first time I tried it (probably a typo). So that solves my problem. Thanks Eric.
It does seem to me that this should be the default behavior, though I can appreciate the difficulty with panning and zooming. Jon On Wed, 2013-03-20 at 18:16 -0700, Brendan Barnwell wrote: > > On 2013-03-20 14:25, Eric Firing wrote: > > > On 2013/03/20 8:57 AM, Jonathan Slavin wrote: > >> >> Hi all, > >> >> > >> >> I've run across a minor but annoying bug. It can be > demonstrated pretty > >> >> simply: > >> >> > >> >> fig, ax = plt.subplots(2,1,sharex=True,figsize=(7.,7.)) > >> >> fig.subplots_adjust(hspace=0.0) > >> >> x = 4.25*(np.arange(6.) - 2.5)/10. > >> >> y = 0.6*x/max(x) > >> >> ax[0].plot(x,y) > >> >> ax[0].set_xlim(-1.2,1.2) > >> >> ax[0].set_aspect('equal') > >> >> ax[1].plot(x,y) > >> >> ax[0].set_ylim(-0.6,0.6) > >> >> ax[1].set_ylim(-0.6,0.6) > >> >> ax[1].set_aspect('equal') > >> >> plt.show() > >> >> > >> >> The problem is that the y limits on the two plots are slightly > different > >> >> from those set: > > > > > > I think the problem is that you are trying to specify too many > things: > > > you are specifying the box dimensions when you make the axes, > then you > > > are specifying xlim, and then you are specifying ylim, but then > you are > > > asking for a 1:1 aspect ratio. Something has to give! The > aspect ratio > > > handling is designed to provide the specified aspect ratio under > a wide > > > range of circumstances, including zooming and panning, and to do > that, > > > it has to be able to change something. You can choose to let the box > > > dimensions be changeable, or the data limits. > > If I understand right, though, in this case what should give is the > spacing around the axes but inside the figure (as suggested in the > original post). You should be able to fix the aspect ratio of the > *axes* and also the dimensions of the *figure*, and let the slack be > taken up by blank space around the axes. It would still be possible > for the dimensions of the axes box to change, just not their aspect > ratio (i.e., zooming in on an oblong region would just result in a lot > of blank space). > > -- Brendan Barnwell "Do not follow where the path may lead. Go, > instead, where there is no path, and leave a trail." --author unknown > > > -- ______________________________________________________________ Jonathan D. Slavin Harvard-Smithsonian CfA jsla...@cfa.harvard.edu 60 Garden Street, MS 83 phone: (617) 496-7981 Cambridge, MA 02138-1516 cell: (781) 363-0035 USA ______________________________________________________________ ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users