diff --git a/CHANGELOG b/CHANGELOG
index e2a2b9d54c97..387dddd8d139 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+2012-01-23 The radius labels in polar plots no longer use a fixed
+ padding, but use a different alignment depending on the
+ quadrant they are in. This fixes numerical problems when
+ (rmax - rmin) gets too small. - MGD
+
2011-12-27 Work around an EINTR bug in some versions of subprocess. - JKS
2011-08-18 Change api of Axes.get_tightbbox and add an optional
diff --git a/lib/matplotlib/projections/polar.py b/lib/matplotlib/projections/polar.py
index ec5526cddcb1..61e7016f704c 100644
--- a/lib/matplotlib/projections/polar.py
+++ b/lib/matplotlib/projections/polar.py
@@ -62,7 +62,7 @@ def transform(self, tr):
t *= theta_direction
t += theta_offset
-
+
if rmin != 0:
r = r - rmin
mask = r < 0
@@ -149,7 +149,7 @@ def transform(self, xy):
rmin = 0
theta_offset = 0
theta_direction = 1
-
+
x = xy[:, 0:1]
y = xy[:, 1:]
r = np.sqrt(x*x + y*y)
@@ -160,7 +160,7 @@ def transform(self, xy):
theta *= theta_direction
r += rmin
-
+
return np.concatenate((theta, r), 1)
transform.__doc__ = Transform.transform.__doc__
@@ -229,7 +229,6 @@ def __init__(self, *args, **kwargs):
interpolation.
"""
- self._rpad = 0.05
self.resolution = kwargs.pop('resolution', None)
if self.resolution not in (None, 1):
warnings.warn(
@@ -261,7 +260,7 @@ def cla(self):
self.set_theta_offset(0)
self.set_theta_direction(1)
-
+
def _init_axis(self):
"move this out of __init__ because non-separable axes don't use it"
self.xaxis = maxis.XAxis(self)
@@ -319,21 +318,10 @@ def _set_lim_and_transforms(self):
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 = ScaledTranslation(
- 22.5, self._rpad,
- blended_transform_factory(
- Affine2D(), BboxTransformToMaxOnly(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 = ScaledTranslation(
- 22.5, -self._rpad,
- blended_transform_factory(
- Affine2D(), BboxTransformToMaxOnly(self.viewLim)))
- self._yaxis_text2_transform = (
- self._r_label2_position +
+ self._r_label_position = ScaledTranslation(
+ 22.5, 0.0, Affine2D())
+ self._yaxis_text_transform = (
+ self._r_label_position +
Affine2D().scale(1.0 / 360.0, 1.0) +
self._yaxis_transform
)
@@ -353,10 +341,26 @@ def get_yaxis_transform(self,which='grid'):
return self._yaxis_transform
def get_yaxis_text1_transform(self, pad):
- return self._yaxis_text1_transform, 'center', 'center'
+ angle = self._r_label_position.to_values()[4]
+ if angle < 90.:
+ return self._yaxis_text_transform, 'bottom', 'left'
+ elif angle < 180.:
+ return self._yaxis_text_transform, 'bottom', 'right'
+ elif angle < 270.:
+ return self._yaxis_text_transform, 'top', 'right'
+ else:
+ return self._yaxis_text_transform, 'top', 'left'
def get_yaxis_text2_transform(self, pad):
- return self._yaxis_text2_transform, 'center', 'center'
+ angle = self._r_label_position.to_values()[4]
+ if angle < 90.:
+ return self._yaxis_text_transform, 'top', 'right'
+ elif angle < 180.:
+ return self._yaxis_text_transform, 'top', 'left'
+ elif angle < 270.:
+ return self._yaxis_text_transform, 'bottom', 'left'
+ else:
+ return self._yaxis_text_transform, 'bottom', 'right'
def _gen_axes_patch(self):
return Circle((0.5, 0.5), 0.5)
@@ -406,7 +410,7 @@ def set_theta_zero_location(self, loc):
'E': 0,
'NE': np.pi * 0.25 }
return self.set_theta_offset(mapping[loc])
-
+
def set_theta_direction(self, direction):
"""
Set the direction in which theta increases.
@@ -437,7 +441,7 @@ def get_theta_direction(self):
Theta increases in the counterclockwise direction
"""
return self._direction
-
+
def set_rlim(self, *args, **kwargs):
if 'rmin' in kwargs:
kwargs['ymin'] = kwargs.pop('rmin')
@@ -494,7 +498,7 @@ def set_thetagrids(self, angles, labels=None, frac=None, fmt=None,
return self.xaxis.get_ticklines(), self.xaxis.get_ticklabels()
@docstring.dedent_interpd
- def set_rgrids(self, radii, labels=None, angle=None, rpad=None, fmt=None,
+ def set_rgrids(self, radii, labels=None, angle=None, fmt=None,
**kwargs):
"""
Set the radial locations and labels of the *r* grids.
@@ -507,9 +511,6 @@ def set_rgrids(self, radii, labels=None, angle=None, rpad=None, fmt=None,
If *labels* is None, the built-in formatter will be used.
- *rpad* is a fraction of the max of *radii* which will pad each of
- the radial labels in the radial direction.
-
Return value is a list of tuples (*line*, *label*), where
*line* is :class:`~matplotlib.lines.Line2D` instances and the
*label* is :class:`~matplotlib.text.Text` instances.
@@ -531,13 +532,9 @@ def set_rgrids(self, radii, labels=None, angle=None, rpad=None, fmt=None,
elif fmt is not None:
self.yaxis.set_major_formatter(FormatStrFormatter(fmt))
if angle is None:
- angle = self._r_label1_position.to_values()[4]
- if rpad is not None:
- self._rpad = rpad
- 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()
+ angle = self._r_label_position.to_values()[4]
+ self._r_label_position._t = (angle, 0.0)
+ self._r_label_position.invalidate()
for t in self.yaxis.get_ticklabels():
t.update(kwargs)
return self.yaxis.get_gridlines(), self.yaxis.get_ticklabels()
@@ -589,7 +586,7 @@ def can_pan(self) :
return True
def start_pan(self, x, y, button):
- angle = self._r_label1_position.to_values()[4] / 180.0 * np.pi
+ angle = np.deg2rad(self._r_label_position.to_values()[4])
mode = ''
if button == 1:
epsilon = np.pi / 45.0
@@ -603,7 +600,7 @@ def start_pan(self, x, y, button):
rmax = self.get_rmax(),
trans = self.transData.frozen(),
trans_inverse = self.transData.inverted().frozen(),
- r_label_angle = self._r_label1_position.to_values()[4],
+ r_label_angle = self._r_label_position.to_values()[4],
x = x,
y = y,
mode = mode
@@ -628,11 +625,16 @@ def drag_pan(self, button, key, x, y):
dt = dt0 * -1.0
dt = (dt / np.pi) * 180.0
- 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()
+ self._r_label_position._t = (p.r_label_angle - dt, 0.0)
+ self._r_label_position.invalidate()
+
+ trans, vert1, horiz1 = self.get_yaxis_text1_transform(0.0)
+ trans, vert2, horiz2 = self.get_yaxis_text2_transform(0.0)
+ for t in self.yaxis.majorTicks + self.yaxis.minorTicks:
+ t.label1.set_va(vert1)
+ t.label1.set_ha(horiz1)
+ t.label2.set_va(vert2)
+ t.label2.set_ha(horiz2)
elif p.mode == 'zoom':
startt, startr = p.trans_inverse.transform_point((p.x, p.y))
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.pdf
index 1acf60be40fa..bb3e921a0569 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png
index 7084e4390771..1e1b2643815d 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg
index fa16fb67cffe..3dc142f54a94 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg
@@ -2,41 +2,25 @@
-
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.pdf
index 7c30ec686afa..9e2834a33f03 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.png
index 70356f2dea74..083de814588b 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.svg
index 6173924d2b8c..5d34db8a7b08 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.svg
@@ -1,706 +1,1868 @@
-
+
-
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.pdf
index 5c41ec898c98..c1d08e877a20 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.png
index ceda3a095a03..5d01d1fd0988 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.svg
index 358c882b40d9..394172f8a492 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_theta_position.svg
@@ -34,23 +34,7 @@ z
" style="fill:#ffffff;"/>
-
-
-
-
-
-
-
@@ -345,47 +329,47 @@ L165.812 93.8119" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
+M25 67.9219
+Q21.0938 67.9219 18.4062 65.2031
+Q15.7188 62.5 15.7188 58.5938
+Q15.7188 54.7344 18.4062 52.0781
+Q21.0938 49.4219 25 49.4219
+Q28.9062 49.4219 31.5938 52.0781
+Q34.2812 54.7344 34.2812 58.5938
+Q34.2812 62.4531 31.5625 65.1875
+Q28.8594 67.9219 25 67.9219
+M25 74.2188
+Q28.125 74.2188 31 73.0156
+Q33.8906 71.8281 35.9844 69.5781
+Q38.2344 67.3906 39.3594 64.5938
+Q40.4844 61.8125 40.4844 58.5938
+Q40.4844 52.1562 35.9688 47.6875
+Q31.4531 43.2188 24.9062 43.2188
+Q18.3125 43.2188 13.9062 47.6094
+Q9.51562 52 9.51562 58.5938
+Q9.51562 65.1406 14 69.6719
+Q18.5 74.2188 25 74.2188" id="BitstreamVeraSans-Roman-b0"/>
+M31.7812 66.4062
+Q24.1719 66.4062 20.3281 58.9062
+Q16.5 51.4219 16.5 36.375
+Q16.5 21.3906 20.3281 13.8906
+Q24.1719 6.39062 31.7812 6.39062
+Q39.4531 6.39062 43.2812 13.8906
+Q47.125 21.3906 47.125 36.375
+Q47.125 51.4219 43.2812 58.9062
+Q39.4531 66.4062 31.7812 66.4062
+M31.7812 74.2188
+Q44.0469 74.2188 50.5156 64.5156
+Q56.9844 54.8281 56.9844 36.375
+Q56.9844 17.9688 50.5156 8.26562
+Q44.0469 -1.42188 31.7812 -1.42188
+Q19.5312 -1.42188 13.0625 8.26562
+Q6.59375 17.9688 6.59375 36.375
+Q6.59375 54.8281 13.0625 64.5156
+Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
-
+
@@ -393,7 +377,7 @@ Q19.5312 -74.2188 31.7812 -74.2188" id="BitstreamVeraSans-Roman-30"/>
-
@@ -401,51 +385,51 @@ L288 43.2" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;st
-
+
@@ -454,7 +438,7 @@ z
-
@@ -462,35 +446,35 @@ L410.188 93.8119" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
+M10.9844 1.51562
+L10.9844 10.5
+Q14.7031 8.73438 18.5 7.8125
+Q22.3125 6.89062 25.9844 6.89062
+Q35.75 6.89062 40.8906 13.4531
+Q46.0469 20.0156 46.7812 33.4062
+Q43.9531 29.2031 39.5938 26.9531
+Q35.25 24.7031 29.9844 24.7031
+Q19.0469 24.7031 12.6719 31.3125
+Q6.29688 37.9375 6.29688 49.4219
+Q6.29688 60.6406 12.9375 67.4219
+Q19.5781 74.2188 30.6094 74.2188
+Q43.2656 74.2188 49.9219 64.5156
+Q56.5938 54.8281 56.5938 36.375
+Q56.5938 19.1406 48.4062 8.85938
+Q40.2344 -1.42188 26.4219 -1.42188
+Q22.7031 -1.42188 18.8906 -0.6875
+Q15.0938 0.046875 10.9844 1.51562
+M30.6094 32.4219
+Q37.25 32.4219 41.125 36.9531
+Q45.0156 41.5 45.0156 49.4219
+Q45.0156 57.2812 41.125 61.8438
+Q37.25 66.4062 30.6094 66.4062
+Q23.9688 66.4062 20.0938 61.8438
+Q16.2188 57.2812 16.2188 49.4219
+Q16.2188 41.5 20.0938 36.9531
+Q23.9688 32.4219 30.6094 32.4219" id="BitstreamVeraSans-Roman-39"/>
-
+
@@ -499,7 +483,7 @@ Q23.9688 -32.4219 30.6094 -32.4219" id="BitstreamVeraSans-Roman-39"/>
-
@@ -507,52 +491,52 @@ L460.8 216" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;s
+M40.5781 39.3125
+Q47.6562 37.7969 51.625 33
+Q55.6094 28.2188 55.6094 21.1875
+Q55.6094 10.4062 48.1875 4.48438
+Q40.7656 -1.42188 27.0938 -1.42188
+Q22.5156 -1.42188 17.6562 -0.515625
+Q12.7969 0.390625 7.625 2.20312
+L7.625 11.7188
+Q11.7188 9.32812 16.5938 8.10938
+Q21.4844 6.89062 26.8125 6.89062
+Q36.0781 6.89062 40.9375 10.5469
+Q45.7969 14.2031 45.7969 21.1875
+Q45.7969 27.6406 41.2812 31.2656
+Q36.7656 34.9062 28.7188 34.9062
+L20.2188 34.9062
+L20.2188 43.0156
+L29.1094 43.0156
+Q36.375 43.0156 40.2344 45.9219
+Q44.0938 48.8281 44.0938 54.2969
+Q44.0938 59.9062 40.1094 62.9062
+Q36.1406 65.9219 28.7188 65.9219
+Q24.6562 65.9219 20.0156 65.0312
+Q15.375 64.1562 9.8125 62.3125
+L9.8125 71.0938
+Q15.4375 72.6562 20.3438 73.4375
+Q25.25 74.2188 29.5938 74.2188
+Q40.8281 74.2188 47.3594 69.1094
+Q53.9062 64.0156 53.9062 55.3281
+Q53.9062 49.2656 50.4375 45.0938
+Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
-
+
@@ -562,7 +546,7 @@ z
-
@@ -570,43 +554,43 @@ L410.188 338.188" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
+M31.7812 34.625
+Q24.75 34.625 20.7188 30.8594
+Q16.7031 27.0938 16.7031 20.5156
+Q16.7031 13.9219 20.7188 10.1562
+Q24.75 6.39062 31.7812 6.39062
+Q38.8125 6.39062 42.8594 10.1719
+Q46.9219 13.9688 46.9219 20.5156
+Q46.9219 27.0938 42.8906 30.8594
+Q38.875 34.625 31.7812 34.625
+M21.9219 38.8125
+Q15.5781 40.375 12.0312 44.7188
+Q8.5 49.0781 8.5 55.3281
+Q8.5 64.0625 14.7188 69.1406
+Q20.9531 74.2188 31.7812 74.2188
+Q42.6719 74.2188 48.875 69.1406
+Q55.0781 64.0625 55.0781 55.3281
+Q55.0781 49.0781 51.5312 44.7188
+Q48 40.375 41.7031 38.8125
+Q48.8281 37.1562 52.7969 32.3125
+Q56.7812 27.4844 56.7812 20.5156
+Q56.7812 9.90625 50.3125 4.23438
+Q43.8438 -1.42188 31.7812 -1.42188
+Q19.7344 -1.42188 13.25 4.23438
+Q6.78125 9.90625 6.78125 20.5156
+Q6.78125 27.4844 10.7812 32.3125
+Q14.7969 37.1562 21.9219 38.8125
+M18.3125 54.3906
+Q18.3125 48.7344 21.8438 45.5625
+Q25.3906 42.3906 31.7812 42.3906
+Q38.1406 42.3906 41.7188 45.5625
+Q45.3125 48.7344 45.3125 54.3906
+Q45.3125 60.0625 41.7188 63.2344
+Q38.1406 66.4062 31.7812 66.4062
+Q25.3906 66.4062 21.8438 63.2344
+Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
-
+
@@ -616,7 +600,7 @@ Q18.3125 -60.0625 18.3125 -54.3906" id="BitstreamVeraSans-Roman-38"/>
-
@@ -624,30 +608,30 @@ L288 388.8" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;s
+L7.32812 8.29688
+Q12.9375 14.1094 22.625 23.8906
+Q32.3281 33.6875 34.8125 36.5312
+Q39.5469 41.8438 41.4219 45.5312
+Q43.3125 49.2188 43.3125 52.7812
+Q43.3125 58.5938 39.2344 62.25
+Q35.1562 65.9219 28.6094 65.9219
+Q23.9688 65.9219 18.8125 64.3125
+Q13.6719 62.7031 7.8125 59.4219
+L7.8125 69.3906
+Q13.7656 71.7812 18.9375 73
+Q24.125 74.2188 28.4219 74.2188
+Q39.75 74.2188 46.4844 68.5469
+Q53.2188 62.8906 53.2188 53.4219
+Q53.2188 48.9219 51.5312 44.8906
+Q49.8594 40.875 45.4062 35.4062
+Q44.1875 33.9844 37.6406 27.2188
+Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
-
+
@@ -657,7 +641,7 @@ Q31.1094 -20.4531 19.1875 -8.29688" id="BitstreamVeraSans-Roman-32"/>
-
@@ -665,17 +649,17 @@ L165.812 338.188" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
-
+
@@ -685,13 +669,13 @@ z
-
-
+
@@ -703,7 +687,7 @@ L115.2 216" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;s
-
-
+
@@ -787,7 +771,7 @@ z
-
-
+
@@ -893,7 +877,7 @@ L247.271 175.271" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
-
-
+
@@ -999,7 +983,7 @@ L226.906 154.906" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
-
-
+
@@ -1194,7 +1178,7 @@ L206.541 134.541" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
-
-
+
@@ -1389,7 +1373,7 @@ L186.177 114.177" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.00
-
-
+
@@ -1599,4 +1583,20 @@ z
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.pdf
index 6f5228bf7ff8..f0539f87a88d 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png
index 87215809b790..68ac1f2df911 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg
index 9914c8e45221..a70f6953af55 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg
@@ -1,481 +1,1716 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.pdf
index 109e59e19e17..45331e365b77 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.png
index 9251605a5671..da3fc93a110f 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.svg
index e854972fdae5..2b63ef27dad0 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_units_2.svg
@@ -1,715 +1,1826 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.pdf
index e14c95cb7997..b40c2e7dcd41 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.png
index 0bf47b72fb20..6265c585f22f 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.svg
index 1b855e906d48..c377a34f95a3 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.svg
@@ -1,425 +1,1369 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.pdf b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.pdf
index 2d3409546072..95ad3a0f2a50 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.png b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.png
index d69380e09b7d..dec31ce6d3aa 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.png and b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.svg b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.svg
index 7cfe7db99453..e356de8b8d03 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.svg
@@ -1,430 +1,1392 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+