I'm doing a visualisation of a series of points using
coord_polar(). Because these points have an angle whose precision is maybe 5 or 10 degrees, I'm jittering them—but I'm finding that points with an angle right on the limits (ie. 0 or 360) get cut off unless their jittered values land inside the
(0, 360) range. In other words, points at θ = 360 with positive jitter width, or values at θ = 0 with negative jitter width, are lost.
I have a reprex here, although I'm finding that the results aren't fully reproducible because
geom_jitter doesn't appear to respect
library(tidyverse) #> Warning: package 'ggplot2' was built under R version 3.5.1 #> Warning: package 'dplyr' was built under R version 3.5.1 test = crossing( angle = seq(0, 360, 15), radius = 1:5) ggplot(test, aes(x = angle, y = radius)) + geom_jitter(aes(colour = angle), width = 2, height = 0) + scale_x_continuous(limits = c(0, 360), breaks = seq(0, 360, by = 45)) + coord_polar() #> Warning: Removed 5 rows containing missing values (geom_point).
Created on 2018-10-09 by the reprex package (v0.2.0).
You can see from this particular jitter that some of the points at either 0 or 360 have been rendered, but at other radii both have been clipped. I'd hoped that specifying
clip = 'off' might fix this, but no dice.
It seems like this is probably an understood present limitation of
Would the best bet here be to generate the randomness myself and then manually wrap the angles?