Polar plot points appear on wrong position
8 views (last 30 days)
I am plotting values in an array of three parameters (angle, radius, and third parameter which is colored) points with a radius range of [-1.5, 2.8]. When plotting via polarscatter without any axes constraints, they appear as follows. You can see that the datapoint chosen lies at the maximum radius and is correctly placed (2.788 close to the edge of the graph).
If instead of relying on the automatic limits, I run
I can still see the same behaviour:
However, when I try to verify that no points exist beyond 2.8, and run the following:
then, points act strange. As you can see, a point with value R=1.224 and Theta=321 deg appears between 4.5 and 5 ticks on the 150 deg region.
This is what the code looks like:
polaraxes; hold on;
% rlim([min max])
My conclusion is that I am not understanding how polar plots really works. This is of course the same if I use polarplot instead of polarscatter. I am going through the documentation to no success to spot my mistake.
Could you help me understand what is going on? Thank you!
dpb on 15 Aug 2020
Edited: dpb on 16 Aug 2020
Looks like a bug -- I took the example for polarscatter from the doc and set rlim([10 20])
The one point outside the lower bounds of the new radial limits was still shown...as moved the lower limit to the minimum r value of the smallest point, it looks ok to placing the point at the origin.
But, when the limit is greater than the data point radius value, the angle location is 180 out of phase and the point plotted at a radius was at the reflection of r-rlim(1) --> 6 - 7 = -1.
Looks like the implementation just subtracts the lower limit from the r array and plots the result. This works until the values turn negative.
Doesn't look like was tested very much... :(