3

我正在制作一个以类似于此示例的因素为条件的箱线图:

p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(aes(fill = factor(am)))

数据集中的点很少,我想通过叠加数据点来直观地表达这一点。我想覆盖由相同因子“am”着色的点,我尝试这样做:

p + geom_boxplot(aes(fill = factor(am))) + geom_jitter(aes(colour = factor(am)))

这些点由因子“am”着色,但没有间隔以仅位于与其关联的箱形图上。相反,它们混合并覆盖两者。有谁知道geom_jitter点与因素“am”相关联的条件?

4

1 回答 1

3

欢迎来到 SO!这是我的尝试。这有点笨拙,但可以完成工作。诀窍是映射x到具有手动构造的偏移量的虚拟变量。我正在添加填充比例以突出显示点定位。

mtcars$cylpt <- as.numeric(factor(mtcars$cyl)) + ifelse(mtcars$am == 0, -0.2, 0.2)
ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot(aes(fill = factor(am))) + 
  geom_point(aes(x = cylpt, colour = factor(am)), position = "jitter") +
  scale_fill_manual(values = c("white", "gray"))

在此处输入图像描述

于 2015-06-05T09:37:03.907 回答