繁体   English   中英

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

[英]Plotting two boxplots at one x position using R and ggplot2

我想在ggplot2中使用ggplot2R之上/之下绘制多个箱图,而不是在Rggplot2 这是一个例子:

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的默认geom_boxplot是使用position = "dodge"

主要讨论是: 这里

简而言之,可以使用geom_boxplot(position=position_dodge(0)) 可以指定改变'position_dodge'值的方框之间的距离。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM