Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2框须图:显示95%置信区间和;删除异常值_R_Plot_Ggplot2 - Fatal编程技术网

R ggplot2框须图:显示95%置信区间和;删除异常值

R ggplot2框须图:显示95%置信区间和;删除异常值,r,plot,ggplot2,R,Plot,Ggplot2,我想要一个盒状图,看起来就像下面的那个。但是,我不想使用默认值,而是提供(1)95%置信区间,(2)没有异常值 95%的置信区间可能意味着(i)延伸盒子并移除胡须,或(ii)仅具有平均值和胡须,并移除盒子。或者,如果人们对在这样的情节中呈现95%的置信区间有其他想法,我愿意接受建议。最终目标是在同一绘图上显示跨多个类别的数据的平均间隔和配置间隔 set.seed(1234) df <- data.frame(cond = factor( rep(c("A","B"), each=200)

我想要一个盒状图,看起来就像下面的那个。但是,我不想使用默认值,而是提供(1)95%置信区间(2)没有异常值

95%的置信区间可能意味着(i)延伸盒子并移除胡须,或(ii)仅具有平均值和胡须,并移除盒子。或者,如果人们对在这样的情节中呈现95%的置信区间有其他想法,我愿意接受建议。最终目标是在同一绘图上显示跨多个类别的数据的平均间隔和配置间隔

set.seed(1234)
df <- data.frame(cond = factor( rep(c("A","B"), each=200) ), 
                   rating = c(rnorm(200),rnorm(200, mean=.8))
ggplot(df, aes(x=cond, y=rating, fill=cond)) + geom_boxplot() + 
    guides(fill=FALSE) + coord_flip()
set.seed(1234)

df您可以通过将大小设置为0来隐藏异常值:

ggplot(df, aes(x=cond, y=rating, fill=cond)) + 
  geom_boxplot(outlier.size = 0) + 
  guides(fill=FALSE) + coord_flip()
您可以使用
stat\u summary
功能将平均值添加到绘图中:

ggplot(df, aes(x=cond, y=rating, fill=cond)) + 
  geom_boxplot(outlier.size = 0) + 
  stat_summary(fun.y="mean", geom="point", shape=23, size=4, fill="white") +
  guides(fill=FALSE) + 
  coord_flip()

我用下面的例子来说明95%的间隔。根据我所读到的内容,box和whisker的用法并不少见,但这并不是默认用法,所以你需要弄清楚你在图中显示了什么

quantiles_95 <- function(x) {
  r <- quantile(x, probs=c(0.05, 0.25, 0.5, 0.75, 0.95))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}

ggplot(df, aes(x=cond, y=rating, fill=cond)) +
    guides(fill=F) +
    coord_flip() +
    stat_summary(fun.data = quantiles_95, geom="boxplot")

quantiles_95这不是一个好主意,因为它不再是一个方框图,可能会很混乱。你可以很容易地让第一个和第三个分位数在置信区间之外(这是样本大小的函数)——所以胡须会被盒子盖住!为什么不直接使用geom_纵横杆或geom_errorbar或geom_linerange?这基本上就是答案——只需使用不同的方法构建自己的箱线图元素。我同意@AndyW的观点,即不应改变箱线图的基本原理。
geom\u errorbar
geom\u-Violent
的组合可能适合您的目的。@Jaap不知怎的,我错过了这个!感谢ping。这没有提到置信区间。我认为这显示了95%的区间,但不是95%的置信区间。我已经用
Rmisc::CI
函数和统计测试验证了这个方法,它确实没有可视化预期的置信区间。