Revision: 8590 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8590&view=rev Author: mdboom Date: 2010-07-28 19:19:27 +0000 (Wed, 28 Jul 2010)
Log Message: ----------- [3031954] polar plot axis labeling problem Radial axis labels should now be placed correctly, even for small values of rmax Modified Paths: -------------- branches/v1_0_maint/lib/matplotlib/projections/polar.py branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png Modified: branches/v1_0_maint/lib/matplotlib/projections/polar.py =================================================================== --- branches/v1_0_maint/lib/matplotlib/projections/polar.py 2010-07-28 18:50:21 UTC (rev 8589) +++ branches/v1_0_maint/lib/matplotlib/projections/polar.py 2010-07-28 19:19:27 UTC (rev 8590) @@ -13,7 +13,8 @@ from matplotlib.path import Path from matplotlib.ticker import Formatter, Locator, FormatStrFormatter from matplotlib.transforms import Affine2D, Affine2DBase, Bbox, \ - BboxTransformTo, IdentityTransform, Transform, TransformWrapper + BboxTransformTo, IdentityTransform, Transform, TransformWrapper, \ + ScaledTranslation, blended_transform_factory import matplotlib.spines as mspines class PolarAxes(Axes): @@ -287,13 +288,17 @@ Affine2D().scale(np.pi * 2.0, 1.0) + self.transData) # The r-axis labels are put at an angle and padded in the r-direction - self._r_label1_position = Affine2D().translate(22.5, self._rpad) + self._r_label1_position = ScaledTranslation( + 22.5, self._rpad, + blended_transform_factory(Affine2D(), BboxTransformTo(self.viewLim))) self._yaxis_text1_transform = ( self._r_label1_position + Affine2D().scale(1.0 / 360.0, 1.0) + self._yaxis_transform ) - self._r_label2_position = Affine2D().translate(22.5, self._rpad) + self._r_label2_position = ScaledTranslation( + 22.5, -self._rpad, + blended_transform_factory(Affine2D(), BboxTransformTo(self.viewLim))) self._yaxis_text2_transform = ( self._r_label2_position + Affine2D().scale(1.0 / 360.0, 1.0) + @@ -435,9 +440,10 @@ angle = self._r_label1_position.to_values()[4] if rpad is not None: self._rpad = rpad - rmax = self.get_rmax() - self._r_label1_position.clear().translate(angle, self._rpad * rmax) - self._r_label2_position.clear().translate(angle, -self._rpad * rmax) + self._r_label1_position._t = (angle, self._rpad) + self._r_label1_position.invalidate() + self._r_label2_position._t = (angle, -self._rpad) + self._r_label2_position.invalidate() for t in self.yaxis.get_ticklabels(): t.update(kwargs) return self.yaxis.get_gridlines(), self.yaxis.get_ticklabels() @@ -516,11 +522,11 @@ dt = dt0 * -1.0 dt = (dt / np.pi) * 180.0 - rpad = self._r_label1_position.to_values()[5] - self._r_label1_position.clear().translate( - p.r_label_angle - dt, rpad) - self._r_label2_position.clear().translate( - p.r_label_angle - dt, -rpad) + rpad = self._rpad + self._r_label1_position._t = (p.r_label_angle - dt, rpad) + self._r_label1_position.invalidate() + self._r_label2_position._t = (p.r_label_angle - dt, -rpad) + self._r_label2_position.invalidate() elif p.mode == 'zoom': startt, startr = p.trans_inverse.transform_point((p.x, p.y)) Modified: branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ Matplotlib-checkins mailing list Matplotlib-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins