如何在x轴上添加一个表示ggplot2中所有观察值的因子水平?

Hei*_*erg 7 r ggplot2

可以很容易地创建图表,其中x轴具有每个因子级别,如下所示:

df <- data.frame(value = rnorm(100), group = rep(1:3, length=100))
ggplot() + geom_boxplot(aes(factor(group), value), data=df)
Run Code Online (Sandbox Code Playgroud)

我想在x轴上添加另一个因子级别,它使用整个样本中的数据(而不是仅来自一个组).手动方式是rbind将数据框自身如下:

df2 <- rbind(df, df)
df2$group[100:200] <- "entire sample"
ggplot() + geom_boxplot(aes(factor(group), value), data=df2)
Run Code Online (Sandbox Code Playgroud)

但是,有时我的数据框非常复杂,我想避免重复我的数据帧.有没有更好的办法?

Lyz*_*deR 4

你可以这样做:

ggplot() + geom_boxplot(aes(factor(group), value), data=df) + 
           geom_boxplot(aes('entire sample', value), data=df)
Run Code Online (Sandbox Code Playgroud)

你会得到相同的结果

在此输入图像描述