From 9b30fdf522d6915771f4977df703bc431fda9968 Mon Sep 17 00:00:00 2001 From: Oscar Gustafsson Date: Thu, 12 Jan 2023 21:39:08 +0100 Subject: [PATCH] Backport PR #24825: Allow non-default scales on polar axes --- lib/matplotlib/projections/polar.py | 47 ++++++++++++++---- .../baseline_images/test_polar/polar_log.png | Bin 0 -> 41668 bytes lib/matplotlib/tests/test_polar.py | 12 +++++ 3 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_polar/polar_log.png diff --git a/lib/matplotlib/projections/polar.py b/lib/matplotlib/projections/polar.py index 3fbb4d2b9cfd..3243c76d8661 100644 --- a/lib/matplotlib/projections/polar.py +++ b/lib/matplotlib/projections/polar.py @@ -16,13 +16,18 @@ class PolarTransform(mtransforms.Transform): - """ + r""" The base polar transform. - This transform maps polar coordinates ``(theta, r)`` into Cartesian - coordinates ``(x, y) = (r * cos(theta), r * sin(theta))`` (but does not + This transform maps polar coordinates :math:`\theta, r` into Cartesian + coordinates :math:`x, y = r \cos(\theta), r \sin(\theta)` + (but does not fully transform into Axes coordinates or handle positioning in screen space). + This transformation is designed to be applied to data after any scaling + along the radial axis (e.g. log-scaling) has been applied to the input + data. + Path segments at a fixed radius are automatically transformed to circular arcs as long as ``path._interpolation_steps > 1``. """ @@ -30,7 +35,7 @@ class PolarTransform(mtransforms.Transform): input_dims = output_dims = 2 def __init__(self, axis=None, use_rmin=True, - _apply_theta_transforms=True): + _apply_theta_transforms=True, *, scale_transform=None): """ Parameters ---------- @@ -46,12 +51,18 @@ def __init__(self, axis=None, use_rmin=True, self._axis = axis self._use_rmin = use_rmin self._apply_theta_transforms = _apply_theta_transforms + self._scale_transform = scale_transform __str__ = mtransforms._make_str_method( "_axis", use_rmin="_use_rmin", _apply_theta_transforms="_apply_theta_transforms") + def _get_rorigin(self): + # Get lower r limit after being scaled by the radial scale transform + return self._scale_transform.transform( + (0, self._axis.get_rorigin()))[1] + def transform_non_affine(self, tr): # docstring inherited theta, r = np.transpose(tr) @@ -61,7 +72,7 @@ def transform_non_affine(self, tr): theta *= self._axis.get_theta_direction() theta += self._axis.get_theta_offset() if self._use_rmin and self._axis is not None: - r = (r - self._axis.get_rorigin()) * self._axis.get_rsign() + r = (r - self._get_rorigin()) * self._axis.get_rsign() r = np.where(r >= 0, r, np.nan) return np.column_stack([r * np.cos(theta), r * np.sin(theta)]) @@ -85,7 +96,7 @@ def transform_path_non_affine(self, path): # that behavior here. last_td, td = np.rad2deg([last_t, t]) if self._use_rmin and self._axis is not None: - r = ((r - self._axis.get_rorigin()) + r = ((r - self._get_rorigin()) * self._axis.get_rsign()) if last_td <= td: while td - last_td > 360: @@ -877,7 +888,9 @@ def _set_lim_and_transforms(self): # data. This one is aware of rmin self.transProjection = self.PolarTransform( self, - _apply_theta_transforms=False) + _apply_theta_transforms=False, + scale_transform=self.transScale + ) # Add dependency on rorigin. self.transProjection.set_children(self._originViewLim) @@ -888,9 +901,25 @@ def _set_lim_and_transforms(self): # The complete data transformation stack -- from data all the # way to display coordinates + # + # 1. Remove any radial axis scaling (e.g. log scaling) + # 2. Shift data in the theta direction + # 3. Project the data from polar to cartesian values + # (with the origin in the same place) + # 4. Scale and translate the cartesian values to Axes coordinates + # (here the origin is moved to the lower left of the Axes) + # 5. Move and scale to fill the Axes + # 6. Convert from Axes coordinates to Figure coordinates self.transData = ( - self.transScale + self.transShift + self.transProjection + - (self.transProjectionAffine + self.transWedge + self.transAxes)) + self.transScale + + self.transShift + + self.transProjection + + ( + self.transProjectionAffine + + self.transWedge + + self.transAxes + ) + ) # This is the transform for theta-axis ticks. It is # equivalent to transData, except it always puts r == 0.0 and r == 1.0 diff --git a/lib/matplotlib/tests/baseline_images/test_polar/polar_log.png b/lib/matplotlib/tests/baseline_images/test_polar/polar_log.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8e20b482a50f651e2ffbb5e6af864f1fdfa8f4 GIT binary patch literal 41668 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