我正在尝试使用ggplot2 / geom_boxplot生成一个箱线图,其中晶须定义为第5个和第95个百分位数,而不是0.25-1.5 IQR / 0.75 + IQR,并且像往常一样绘制了这些新晶须的异常值。我可以看到geom_boxplot美学包括ymax / ymin,但是我不清楚如何将值放入此处。这好像是:
stat_quantile(quantiles = c(0.05, 0.25, 0.5, 0.75, 0.95))
应该可以提供帮助,但我不知道如何关联此统计信息的结果以设置适当的geom_boxplot()美观度:
geom_boxplot(aes(ymin, lower, middle, upper, ymax))
我看到过其他帖子,人们提到本质上是手动构建类似箱线图的对象,但是我宁愿保持整个箱线图的格式不变,只是修改了绘制的两个变量的含义。
最佳答案
带有stat_summary的geom_boxplot可以做到:
# define the summary function
f <- 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
}
# sample data
d <- data.frame(x=gl(2,50), y=rnorm(100))
# do it
ggplot(d, aes(x, y)) + stat_summary(fun.data = f, geom="boxplot")
# example with outliers
# define outlier as you want
o <- function(x) {
subset(x, x < quantile(x)[2] | quantile(x)[4] < x)
}
# do it
ggplot(d, aes(x, y)) +
stat_summary(fun.data=f, geom="boxplot") +
stat_summary(fun.y = o, geom="point")
关于r - 在geom_boxplot中更改晶须定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4765482/