簡體   English   中英

ggplot boxplot 但框擴展到第 5 個和第 95 個百分位數

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

在此處輸入圖片說明 在第 5 和第 95 處帶有胡須的箱線圖:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM