Skip to content

[Bug]: Second and subsequent calls to plt.polar() return an Axis object and do not plot #21113

Closed
@beckja

Description

@beckja

Bug summary

When plt.polar() is called while the current axes are a PolarAxes object, the call just returns the axes again without plotting the new data.

The code for polar() in pyplot.py is easily fixed by changing "return ax" to "return ax.plot(*args, **kwargs)".

Code for reproduction

import matplotlib.pyplot as plt

h1 = plt.polar([0],[1],'ro')

h2 = plt.polar([1.57],[.5], 'bo')

plt.show()

Actual outcome

Only the first point is plotted. Note that h1 is a list of length 1 of Line2D objects, while h2 is a PolarAxesSubplot object.

Expected outcome

Both points should be plotted. Both h1 and h2 should be lists of length 1 of Line2D objects.

Operating system

Windows

Matplotlib Version

3.4.3

Matplotlib Backend

No response

Python version

3.9

Jupyter version

No response

Other libraries

No response

Installation

conda

Conda channel

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Release criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.status: confirmed bug

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions