在盒须图中去除胡须

时间:2013-08-27 07:17:39

标签: r ggplot2 boxplot

是否有一种简单的方法可以从ggplot2 R中的盒须图中去除胡须?我想只保留盒子。

MWE:

library("ggplot2")
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(outlier.size = 0)

2 个答案:

答案 0 :(得分:10)

我们只需要添加参数coef = 0

library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(outlier.size = 0, coef = 0)

enter image description here

答案 1 :(得分:8)

一种方法是使用stat_summary_df()计算昼夜节律,25和75百分位数,然后使用geom="crossbar"绘制这些数据。可以使用"median_hilow"内的stat_summary_df()自动完成。为此,您需要在绘图之前添加库Hmisc并定义函数stat_summary_df()。 "median_hilow"的默认值为2.5和97.5百分位数,因此您需要添加参数conf.int=0.5

 stat_sum_df <- function(fun, geom="crossbar", ...) {
    stat_summary(fun.data=fun, colour="red", geom=geom, width=0.2, ...)
 }

library(Hmisc)
ggplot(mtcars, aes(factor(cyl), mpg)) + 
   stat_sum_df("median_hilow",conf.int=0.5,fill="white")

enter image description here