You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Incorrect autoscaling of polar plot limits after scatter #7130
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 and scatter:
import matplotlib.pyplot as plt
r = range(8)
ph = [-0.2]*len(r)
fig,(ax1,ax2) = plt.subplots(ncols=2,subplot_kw={'polar':True})
ax1.plot(ph,r,'o')
ax2.scatter(ph,r)
ax1.set_title('plot')
ax2.set_title('scatter')
plt.show()
The left axes plots the points using plot, and the axes limits are nicely adjusted. The right axes uses scatter, 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. Setting ax2.set_ylim(0,max(r)) of course reproduces the scaling of the left axes.
changed the title [-]Buggy autoscaling of polar plot limits after scatter[/-][+]Incorrect autoscaling of polar plot limits after scatter[/+]on Sep 18, 2016
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 plot and scatter, so I decided that it's likely due to scatter having an independent set of autoscale operations, and didn't reference the other issue. Thanks.
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.
Activity
[-]Buggy autoscaling of polar plot limits after scatter[/-][+]Incorrect autoscaling of polar plot limits after scatter[/+]LindyBalboa commentedon Sep 18, 2016
Probably related to #6915
adeak commentedon Sep 18, 2016
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
plotandscatter, so I decided that it's likely due toscatterhaving an independent set of autoscale operations, and didn't reference the other issue. Thanks.LindyBalboa commentedon Sep 19, 2016
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.
efiring commentedon Sep 20, 2016
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.
anntzer commentedon Nov 4, 2019
This has been fixed as of master. Likely by #13642, though I didn't bother bisecting.