我正在尝试自定义箱线图,除了一个问题,我取得了相当大的成功。我无法理解的一点是如何使用stat_summary来显示异常值。我在一个大图中有不同的箱线图,但是输出上没有显示异常值。然而,如果我修改我的数据,并且只向R提供一种类型的数据(仅用于单个箱线图),那么我的代码可以正常工作,并且我可以在输出中清晰地看到异常值。感谢任何帮助。
非常感谢,
非常感谢,
f <- function(x) {r <- c( quantile(x,probs=c(0.25))-(1.5*(quantile(x,probs=c(0.75))-quantile(x,probs=c(0.25)))) ,quantile(x, probs = c(0.25)), quantile(x, probs = c(0.5)), quantile(x, probs = c(0.75)), quantile(x,probs=c(0.75))+(1.5*(quantile(x,probs=c(0.75))-quantile(x,probs=c(0.25)))) );names(r) <- c('ymin', 'lower', 'middle', 'upper', 'ymax'); r}
o <-function(x) { print(x); if (length(x) > 7) { pp = subset(x, x < (quantile(x, probs = c(0.25)) - (1.5 * (quantile(x, probs = c(0.75)) - quantile(x, probs = c(0.25))))) | x > (quantile(x, probs = c(0.75)) + (1.5 * (quantile(x, probs = c(0.75)) - quantile(x, probs = c(0.25)))))); return (pp)} else { return (NA)} }
dt=read.table("C:/...../test.txt",header=TRUE,sep=",")
data<-data.frame(x=dt$x,day=dt$day)
dev.new();ggplot(data, aes(x,day)) + stat_summary(fun.data=f, geom='boxplot')+stat_summary(fun.data =o, geom='point', col='red')#+ stat_summary(fun.y = o2, geom='point', col='red')