From: <ef...@us...> - 2010-04-22 07:49:20
|
Revision: 8266 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8266&view=rev Author: efiring Date: 2010-04-22 07:49:13 +0000 (Thu, 22 Apr 2010) Log Message: ----------- Axes.autoscale_view: ensure finite ranges; rearrange code for readability Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2010-04-22 03:34:10 UTC (rev 8265) +++ trunk/matplotlib/lib/matplotlib/axes.py 2010-04-22 07:49:13 UTC (rev 8266) @@ -1710,45 +1710,41 @@ setting *scaley* to *False*. The autoscaling preserves any axis direction reversal that has already been done. """ + if tight is not None: + self._tight = bool(tight) # if image data only just use the datalim + _tight = self._tight or (len(self.images)>0 and + len(self.lines)==0 and + len(self.patches)==0) + if scalex and self._autoscaleXon: xshared = self._shared_x_axes.get_siblings(self) dl = [ax.dataLim for ax in xshared] bb = mtransforms.BboxBase.union(dl) x0, x1 = bb.intervalx + x0, x1 = mtransforms.nonsingular(x0, x1, increasing=False) if self._xmargin > 0: delta = (x1 - x0) * self._xmargin x0 -= delta x1 += delta + if not _tight: + x0, x1 = self.xaxis.get_major_locator().view_limits(x0, x1) + self.set_xbound(x0, x1) if scaley and self._autoscaleYon: yshared = self._shared_y_axes.get_siblings(self) dl = [ax.dataLim for ax in yshared] bb = mtransforms.BboxBase.union(dl) y0, y1 = bb.intervaly + y0, y1 = mtransforms.nonsingular(y0, y1, increasing=False) if self._ymargin > 0: delta = (y1 - y0) * self._ymargin y0 -= delta y1 += delta + if not _tight: + y0, y1 = self.yaxis.get_major_locator().view_limits(y0, y1) + self.set_ybound(y0, y1) - if tight is not None: - self._tight = bool(tight) - if (self._tight or (len(self.images)>0 and - len(self.lines)==0 and - len(self.patches)==0)): - if scalex and self._autoscaleXon: - self.set_xbound(x0, x1) - if scaley and self._autoscaleYon: - self.set_ybound(y0, y1) - return - - if scalex and self._autoscaleXon: - XL = self.xaxis.get_major_locator().view_limits(x0, x1) - self.set_xbound(XL) - if scaley and self._autoscaleYon: - YL = self.yaxis.get_major_locator().view_limits(y0, y1) - self.set_ybound(YL) - #### Drawing @allow_rasterization This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |