From: Benjamin R. <ben...@ou...> - 2011-02-06 18:12:09
|
On Sun, Feb 6, 2011 at 11:52 AM, Eric Firing <ef...@ha...> wrote: > On 02/06/2011 06:59 AM, Mike Kaufman wrote: > > > > The help for xlim() says: > > > > Set/Get the xlimits of the current axes:: > > > > xmin, xmax = xlim() # return the current xlim > > xlim( (xmin, xmax) ) # set the xlim to xmin, xmax > > xlim( xmin, xmax ) # set the xlim to xmin, xmax > > > > > > but it also has the unexpected behavior of turning off autoscaling if > used: > > > > ----- > > import matplotlib.pyplot as plt > > > > plt.clf() > > ax = plt.subplot(211) > > plt.draw() > > print 'autoscale X on: ',ax._autoscaleXon,' xlim: ',plt.xlim() > > ax.plot([0,.5,1,1.5,2],[0,1,0,1,0]) > > plt.draw() > > print 'autoscale X on: ',ax._autoscaleXon,' xlim: ',ax.get_xlim(),'\n' > > > > ax = plt.subplot(212) > > plt.draw() > > print 'autoscale X on: ',ax._autoscaleXon,' xlim: ',ax.get_xlim() > > plt.plot([0,.5,1,1.5,2],[0,1,0,1,0]) > > plt.draw() > > print 'autoscale X on: ',ax._autoscaleXon,' xlim: ',ax.get_xlim(),'\n' > > ----- > > > > returns: > > > > >>> import xlim_unautoscale > > autoscale X on: True xlim: (0.0, 1.0) > > autoscale X on: False xlim: (0.0, 1.0) > > > > autoscale X on: True xlim: (0.0, 1.0) > > autoscale X on: True xlim: (0.0, 2.0) > > > > > > I assume that this is because xlim() calls set_xlim() which has > > auto=False as a default keyword... > > > > expected behavior: xlim() should behave exactly like get_xlim() > > ditto for ylim() > > I agree, so I have fixed this in the maintenance branch and in the trunk. > > Eric > > Something I just noticed while looking at the x|ylim() functions. The code for xscale() and yscale() are acting like it returns something, but they don't. Is this a bug? The documentation doesn't claim that it returns anything. Ben Root |