File tree 2 files changed +14
-6
lines changed 2 files changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -2193,14 +2193,12 @@ def polar(*args, **kwargs):
2193
2193
# If an axis already exists, check if it has a polar projection
2194
2194
if gcf ().get_axes ():
2195
2195
ax = gca ()
2196
- if isinstance (ax , PolarAxes ):
2197
- return ax
2198
- else :
2196
+ if not isinstance (ax , PolarAxes ):
2199
2197
_api .warn_external ('Trying to create polar plot on an Axes '
2200
2198
'that does not have a polar projection.' )
2201
- ax = axes ( projection = "polar" )
2202
- ret = ax . plot ( * args , ** kwargs )
2203
- return ret
2199
+ else :
2200
+ ax = axes ( projection = "polar" )
2201
+ return ax . plot ( * args , ** kwargs )
2204
2202
2205
2203
2206
2204
# If rcParams['backend_fallback'] is true, and an interactive backend is
Original file line number Diff line number Diff line change @@ -310,3 +310,13 @@ def test_subplot_change_projection():
310
310
assert ax_next .name == proj
311
311
assert ax is not ax_next
312
312
ax = ax_next
313
+
314
+
315
+ def test_polar_second_call ():
316
+ # the first call creates the axes with polar projection
317
+ h1 = plt .polar (0. , 1. , 'ro' )
318
+ assert isinstance (h1 [0 ], mpl .lines .Line2D )
319
+ # the second call should reuse the existing axes
320
+ h2 = plt .polar (1.57 , .5 , 'bo' )
321
+ assert isinstance (h2 [0 ], mpl .lines .Line2D )
322
+ assert h1 [0 ].axes is h2 [0 ].axes
You can’t perform that action at this time.
0 commit comments