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

Reply via email to