6

在 ggplotboxplot中,很容易使用 jitter 来添加具有不同抖动程度的原始数据点。零抖动以下代码

dat <- data.frame(group=c('a', 'b', 'c'), values = runif(90))

ggplot(dat, aes(group, values)) + 
geom_boxplot(outlier.size = 0) + 
geom_jitter(position=position_jitter(width=0), aes(colour=group), alpha=0.7) + 
ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') +
opts(legend.position = "right") + ylab("values") + xlab("group")

产生下面的情节。

是否可以使用零抖动但添加偏移量,使点在一条线上但向左移动框宽度的 25%?我试过geom_point了,dodge但这会产生抖动。在此处输入图像描述

4

1 回答 1

8

如果我们将 group 转换为 numeric 然后添加一个偏移量,您似乎得到了您想要的输出。可能有一种更有效/更高效的方法,但试一试:

ggplot(dat, aes(group, values)) + 
  geom_boxplot(outlier.size = 0) + 
  geom_point(aes(x = as.numeric(group) + .25, colour=group), alpha=0.7) + 
  ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') +
  opts(legend.position = "right") + ylab("values") + xlab("group")

在此处输入图像描述

于 2011-12-14T19:08:24.983 回答