This is primarily used for aligning points generated through geom_point() with dodged boxplots (e.g., a geom_boxplot() with a fill aesthetic supplied).

position_jitterdodge(jitter.width = NULL, jitter.height = 0,
  dodge.width = 0.75, seed = NA)



degree of jitter in x direction. Defaults to 40% of the resolution of the data.


degree of jitter in y direction. Defaults to 0.


the amount to dodge in the x direction. Defaults to 0.75, the default position_dodge() width.


A random seed to make the jitter reproducible. Useful if you need to apply the same jitter twice, e.g., for a point and a corresponding label. The random seed is reset after jittering. If NA (the default value), the seed is initialised with a random value; this makes sure that two subsequent calls start with a different seed. Use NULL to use the current random seed and also avoid resetting (the behavior of ggplot 2.2.1 and earlier).

See also


dsub <- diamonds[ sample(nrow(diamonds), 1000), ] ggplot(dsub, aes(x = cut, y = carat, fill = clarity)) + geom_boxplot(outlier.size = 0) + geom_point(pch = 21, position = position_jitterdodge())