Skip to content

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


  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 behaviour 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())