Skip to content

Commit 40412b9

Browse files
committed
Merged revisions 8590 via svnmerge from
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint ........ r8590 | mdboom | 2010-07-28 15:19:27 -0400 (Wed, 28 Jul 2010) | 3 lines [3031954] polar plot axis labeling problem Radial axis labels should now be placed correctly, even for small values of rmax ........ svn path=/trunk/matplotlib/; revision=8591
1 parent ed5afc8 commit 40412b9

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

lib/matplotlib/projections/polar.py

+17-11
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from matplotlib.path import Path
1414
from matplotlib.ticker import Formatter, Locator, FormatStrFormatter
1515
from matplotlib.transforms import Affine2D, Affine2DBase, Bbox, \
16-
BboxTransformTo, IdentityTransform, Transform, TransformWrapper
16+
BboxTransformTo, IdentityTransform, Transform, TransformWrapper, \
17+
ScaledTranslation, blended_transform_factory
1718
import matplotlib.spines as mspines
1819

1920
class PolarAxes(Axes):
@@ -287,13 +288,17 @@ def _set_lim_and_transforms(self):
287288
Affine2D().scale(np.pi * 2.0, 1.0) +
288289
self.transData)
289290
# The r-axis labels are put at an angle and padded in the r-direction
290-
self._r_label1_position = Affine2D().translate(22.5, self._rpad)
291+
self._r_label1_position = ScaledTranslation(
292+
22.5, self._rpad,
293+
blended_transform_factory(Affine2D(), BboxTransformTo(self.viewLim)))
291294
self._yaxis_text1_transform = (
292295
self._r_label1_position +
293296
Affine2D().scale(1.0 / 360.0, 1.0) +
294297
self._yaxis_transform
295298
)
296-
self._r_label2_position = Affine2D().translate(22.5, self._rpad)
299+
self._r_label2_position = ScaledTranslation(
300+
22.5, -self._rpad,
301+
blended_transform_factory(Affine2D(), BboxTransformTo(self.viewLim)))
297302
self._yaxis_text2_transform = (
298303
self._r_label2_position +
299304
Affine2D().scale(1.0 / 360.0, 1.0) +
@@ -435,9 +440,10 @@ def set_rgrids(self, radii, labels=None, angle=None, rpad=None, fmt=None,
435440
angle = self._r_label1_position.to_values()[4]
436441
if rpad is not None:
437442
self._rpad = rpad
438-
rmax = self.get_rmax()
439-
self._r_label1_position.clear().translate(angle, self._rpad * rmax)
440-
self._r_label2_position.clear().translate(angle, -self._rpad * rmax)
443+
self._r_label1_position._t = (angle, self._rpad)
444+
self._r_label1_position.invalidate()
445+
self._r_label2_position._t = (angle, -self._rpad)
446+
self._r_label2_position.invalidate()
441447
for t in self.yaxis.get_ticklabels():
442448
t.update(kwargs)
443449
return self.yaxis.get_gridlines(), self.yaxis.get_ticklabels()
@@ -516,11 +522,11 @@ def drag_pan(self, button, key, x, y):
516522
dt = dt0 * -1.0
517523
dt = (dt / np.pi) * 180.0
518524

519-
rpad = self._r_label1_position.to_values()[5]
520-
self._r_label1_position.clear().translate(
521-
p.r_label_angle - dt, rpad)
522-
self._r_label2_position.clear().translate(
523-
p.r_label_angle - dt, -rpad)
525+
rpad = self._rpad
526+
self._r_label1_position._t = (p.r_label_angle - dt, rpad)
527+
self._r_label1_position.invalidate()
528+
self._r_label2_position._t = (p.r_label_angle - dt, -rpad)
529+
self._r_label2_position.invalidate()
524530

525531
elif p.mode == 'zoom':
526532
startt, startr = p.trans_inverse.transform_point((p.x, p.y))

0 commit comments

Comments
 (0)