Skip to content

Commit c757fe1

Browse files
authored
Merge pull request #21131 from beckja/polar-fix
Fix polar() regression on second call failure
2 parents 10f5b60 + 9ee9f3e commit c757fe1

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

lib/matplotlib/pyplot.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2206,14 +2206,12 @@ def polar(*args, **kwargs):
22062206
# If an axis already exists, check if it has a polar projection
22072207
if gcf().get_axes():
22082208
ax = gca()
2209-
if isinstance(ax, PolarAxes):
2210-
return ax
2211-
else:
2209+
if not isinstance(ax, PolarAxes):
22122210
_api.warn_external('Trying to create polar plot on an Axes '
22132211
'that does not have a polar projection.')
2214-
ax = axes(projection="polar")
2215-
ret = ax.plot(*args, **kwargs)
2216-
return ret
2212+
else:
2213+
ax = axes(projection="polar")
2214+
return ax.plot(*args, **kwargs)
22172215

22182216

22192217
# If rcParams['backend_fallback'] is true, and an interactive backend is

lib/matplotlib/tests/test_pyplot.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,3 +310,13 @@ def test_subplot_change_projection():
310310
assert ax_next.name == proj
311311
assert ax is not ax_next
312312
ax = ax_next
313+
314+
315+
def test_polar_second_call():
316+
# the first call creates the axes with polar projection
317+
ln1, = plt.polar(0., 1., 'ro')
318+
assert isinstance(ln1, mpl.lines.Line2D)
319+
# the second call should reuse the existing axes
320+
ln2, = plt.polar(1.57, .5, 'bo')
321+
assert isinstance(ln2, mpl.lines.Line2D)
322+
assert ln1.axes is ln2.axes

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy