[英]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.