使用R和ggplot2在一个x位置绘制两个箱线图

我想在g中使用ggplot2在R之上/之下绘制多个箱图,而不是在R中相邻.
这是一个例子:

library("ggplot2")
set.seed(1)
plot_data<-data.frame(loc=c(rep(1,200),rep(2,100)),
                      value=c(rnorm(100,3,.5),rnorm(100,1,.25),2*runif(100)),
                      class=c(rep("A",100),rep("B",100),rep("C",100)))
ggplot(plot_data,aes(x=loc,y=value,group=class)) +
       geom_boxplot(fill=c("red","green","blue"))

这导致以下情节:

如您所见,蓝色框图以其loc值(2.0)为中心,而红色和绿色仅具有宽度的一半,并且绘制在其共享的loc值(1.0)的左侧和右侧.
我想让它们都与蓝色宽度相同,并将它们直接绘制在彼此之上.

我怎样才能做到这一点?

请注意,我确信箱形图对于我要显示的数据不会重叠,就像它们不适用于给定的示例数据一样.

最佳答案
使用position =“identity”:

ggplot(plot_data,aes(x=loc,y=value,group=class)) +
       geom_boxplot(fill=c("red","green","blue"),position = "identity")

geom_boxplot的默认设置是使用position =“dodge”.

转载注明原文:使用R和ggplot2在一个x位置绘制两个箱线图 - 代码日志