根据多个因子绘制箱线图,并使用ggplot2将原始数据覆盖在R中

时间:2015-04-13 16:10:43

标签: r ggplot2 boxplot

我有一个像这样的箱线图;

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

因此,这将数据绘制为两个因素的底图,一个有两个级别,另一个有三个级别。

现在我想覆盖原始数据。 但是如果我添加geom_points;

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

它忽略了其中一个因素,并在分组的箱形图中间绘制了折叠的原始数据。

是否有简单的解决方法,以便实际正确地绘制geom_points?

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将这些点定位为geom_boxplot的默认值:

ggplot(mtcars, aes(factor(cyl), mpg, fill = factor(am))) + 
  geom_boxplot() + 
  geom_point(position = position_dodge(width = .7))