As @tacaswell mentioned, this is a result of #1603. That bugfix would seem to indicate that "reflecting" negative radius values to the opposite direction was never supposed to be the intended behavior. However, it's how polar plots have worked in matplotlib for quite some time.
I've been thinking about this for a few days now, and I have come to the conclusion that v1.2.1 fixed a long-standing bug with how negative radii were handled. Any time I've used polar coordinates the radius was always positive and if you wanted points in the opposite direction you must change the theta variable. That said, there's certainly an argument to be made for the flexibility of being able to reflect points easily by flipping a sign.
Where a unique representation is needed for any point, it is usual to limit r to
non-negative numbers (r ≥ 0) and φ to the interval [0, 360°) or (−180°, 180°] (in radians,
[0, 2π) or (−π, π]).
For that reason, I think I'm going to close this. If anybody would like to reopen to continue discussion, please feel free to do so.
"Similarly, any polar coordinate is identical to the coordinate with the negative radial component and the opposite direction (adding 180° to the polar angle)."
This suggests that the original behavior was correct.
That is true if you really want to plot polar coordinates (which also implies you always have to start from 0 radius in the center). Even though the projection is called 'polar', this radial plot has a broader scope in which negative values may actually exist at certain angles and are not equivalent to the absolute value rotated by 180 degrees.
Activity
joferkington commented on Jun 18, 2013
Just as a simple example of the change:
With v1.2.0 and earlier, the above example results in:
With 1.2.1 (and the current git head):
As a simple test for the behavior:
As @tacaswell mentioned, this is a result of #1603. That bugfix would seem to indicate that "reflecting" negative radius values to the opposite direction was never supposed to be the intended behavior. However, it's how polar plots have worked in matplotlib for quite some time.
Which one is the "correct" behavior?
dmcdougall commented on Jul 1, 2013
I've been thinking about this for a few days now, and I have come to the conclusion that v1.2.1 fixed a long-standing bug with how negative radii were handled. Any time I've used polar coordinates the radius was always positive and if you wanted points in the opposite direction you must change the theta variable. That said, there's certainly an argument to be made for the flexibility of being able to reflect points easily by flipping a sign.
From Wikipedia:
For that reason, I think I'm going to close this. If anybody would like to reopen to continue discussion, please feel free to do so.
Shooter23 commented on Jan 24, 2019
https://en.wikipedia.org/wiki/Polar_coordinate_system
Under "Uniqueness of polar coordinates":
"Similarly, any polar coordinate is identical to the coordinate with the negative radial component and the opposite direction (adding 180° to the polar angle)."
This suggests that the original behavior was correct.
timhoffm commented on Jan 25, 2019
That is true if you really want to plot polar coordinates (which also implies you always have to start from 0 radius in the center). Even though the projection is called 'polar', this radial plot has a broader scope in which negative values may actually exist at certain angles and are not equivalent to the absolute value rotated by 180 degrees.