可以在ggplot boxplot中偏移一个抖动点

use*_*706 5 r ggplot2 boxplot

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

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")
Run Code Online (Sandbox Code Playgroud)

生成下面的图.

是否可以使用零抖动但添加一个偏移量,使得这些点在一条线上但向左移动了25%的盒子宽度?我试图geom_pointdodge但这产生的抖动.在此输入图像描述

Cha*_*ase 7

如果我们将组转换为数字然后添加偏移量,您似乎可以获得所需的输出.可能有一种更有效/更有效的方式,但请给它一个旋转:

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")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述