[英]ggplot boxplot but with boxes extending to 5th and 95th percentiles
我想要一个箱线图来总结一些基础数据的分布,但代替延伸到第 5 和第 95 次的胡须,我希望将这些方框延伸到第 5 次和第 95 次。
去除异常值和须线的标准箱线图:
library("ggplot2")
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(outlier.shape = NA, coef = 0)
p + stat_summary(geom = "boxplot",
fun.data = function(x) setNames(quantile(x, c(0.05, 0.25, 0.5, 0.75, 0.95)),
c("ymin", "lower", "middle", "upper", "ymax")))
但我真正想要的是将盒子(没有胡须)扩展到第 5 个和第 95 个,因此将这两种修改结合起来。 有没有办法在stat_summary()
指定框生成函数?
这可能是一种稍微“hacky”的方法,但最简单的方法可能是对每个圆柱类使用geom_segment
。 这将允许您指定箱线图的宽度以及您希望箱线图达到的值。 但是,您可以使用aes()
并根据需要使用stat_summary()
添加中线。
library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_segment(aes(x = 4, xend = 4, y = quantile(subset(mtcars, mtcars$cyl==4)$mpg,0.95), yend = quantile(subset(mtcars, mtcars$cyl==4)$mpg, 0.05)), color = 'firebrick1', lwd = 28)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.