-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Incorrect autoscaling of polar plot limits after scatter #7130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Probably related to #6915 |
I had the same vague suspicion, but then again polar limit scaling shouldn't really involve logarithms. But plotting the same thing on a Cartesian axes shows that the automatic limits are different for |
So far as we have come in the other thread, it looks like an issue of updating the Bbox which holds the dataLim(its). I haven't looked at the polar coordinate code in detail, but there are spots where it is more or less next to the logarithm code. There will be two different paths to transforming the data from linear into log and polar scales, but regardless a common function is probably handling the dataLims at some point. |
This is certainly related to #6915, but it's worse. With log scaling, the obvious breakage occurs only when the scale is switched to log after the call to scatter; but in the polar example here, the problem is occurring even when the projection is polar from the start. |
This has been fixed as of master. Likely by #13642, though I didn't bother bisecting. |
In matplotlib 1.5.3 (installed with pip on Ubuntu, both over python 2.7.6 and 3.4.3) there seems to be an inconsistency of automatic axes limits in polar plots when a scatter plot is used. I first saw the issue in this question on Stack Overflow, and it boils down to this short example comparing
plot
andscatter
:The left axes plots the points using
plot
, and the axes limits are nicely adjusted. The right axes usesscatter
, and most of the points are missing as the limits are not updated correctly to fit the data. Note that the default radial (y) top limit would be 1, so there is some rescaling going on, but it is incorrect. Settingax2.set_ylim(0,max(r))
of course reproduces the scaling of the left axes.The text was updated successfully, but these errors were encountered: