ggplot2 geom_jitter jitters in y direction?

Viewed 28

I am very puzzled. When using ggplot2, many uses geom_jitter to add points to boxplots for instance. It is supposed to keep values on the Y-axis, at least as far as I know, and jitter values on the X-axis.

Using it today on two groups, 3 points per group, all the same values, I see it jitters values on the Y-axis.

library(ggplot2)

condition = c(rep("A", 3), rep("B", 3))
fraction = c(rep(100, 3), rep(100, 3))
df = data.frame(condition, fraction)


ggplot(df, aes(condition, fraction))+
  geom_jitter(width = 0.2)+
  labs(title = "",
       x = "", y = "fraction")+
  ylim(95,105)+
  theme_classic()

Graph is below (sorry too new to post an image apparently, so that's a link):

graph resulting from the code

Anyone?

2 Answers

According to documentation of geom_jitter it can jitter in both dimensions. You can use width and height arguments to specify whether you want it to happen. Check out the example below

ggplot() +
    geom_point(data = mpg[1, ], aes(cty, hwy), color = "red") +
    geom_jitter(data = mpg[1, ], aes(cty, hwy), width = 0.5, height = 0.5, color = "blue") + 
    geom_jitter(data = mpg[1, ], aes(cty, hwy), width = 0.5, height = 0, color = "green")

Green dot always has same y-value as black dot (original) due to seting height to 0.

Welcome to SO.

geom_jitter() jitters both horizontally and vertically. To avoid vertical jitter, set height = 0.

geom_jitter(height = 0, seed = 123)

enter image description here

Related