我正在制作一个箱形图,其条件与此示例相似:
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(aes(fill = factor(am)))
数据集中的点数很少,我想通过覆盖数据点来直观地表达这一点。我想覆盖由相同因素着色的点&#34; am&#34;我尝试这样做:
p + geom_boxplot(aes(fill = factor(am))) + geom_jitter(aes(colour = factor(am)))
点数由因素&#34; am&#34;但没有间隔,只能放在他们所关联的箱子图上。相反,他们混合并涵盖两者。
有没有人知道条件geom_jitter
如何使点与因子相关联&#34; am&#34;?
答案 0 :(得分: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"))