使用ggplot2在分组的geom_boxplot()上重叠测量点

时间:2013-11-20 04:39:49

标签: r ggplot2

我的数据看起来像这样

d1 <- data.frame(BAI2013 = rnorm(30),
                 class = rep(letters[1:3], 10),
                 treatment = rep(c("elevated","ambient"),15)) 

我绘制了下面的箱线图,包括测量点和去除异常值:

p<- (ggplot(d1, aes(x = class, y = BAI2013)))

p + geom_boxplot(outlier.size = 0, aes(fill=factor(treatment))) + 
  geom_point(aes(color = factor(treatment)))

enter image description here

问题在于,正如您所看到的,x轴上绘制的点对应于class,而我希望每个框重叠点而不是每个组的中心。 谢谢

2 个答案:

答案 0 :(得分:1)

如果您对他们居中感到高兴,可以使用position_dodge()

p + geom_boxplot(outlier.size = 0, aes(fill=factor(treatment))) + 
  geom_point(aes(color = factor(treatment)), position = position_dodge(width = 0.75))

enter image description here

如果你想让他们感到不安,it gets trickier,但这可能是

答案 1 :(得分:0)

您可以尝试从

开始
p<- (ggplot(d1, aes(x = interaction(class, treatment), y = BAI2013)))

然后你必须考虑你想要的标签/订单实际上是什么样子,但所有内容都会排成一行。