原文地址:http://blog.163.com/luyiming_1986@126/blog/static/15114153220117111013123/
首先自定义画error bar的函数,利用arrows函数:
error.bar <- function(x, y, upper, lower=upper, length=0.1,...){
if(length(x) != length(y) | length(y) !=length(lower) | length(lower) != length(upper))
stop("vectors must be same length")
arrows(x,y+upper, x, y-lower, angle=90, code=3, length=length, ...)
}
利用barplot函数返回的各bar的顶点中间的横坐标,和自己输入的纵坐标,作为error.bar的参数:
下面是一个例子:
y <- rnorm(500, mean=1)
y <- matrix(y,100,5)
y.means <- apply(y,2,mean)
y.sd <- apply(y,2,sd)
barx <- barplot(y.means, names.arg=1:5,ylim=c(0,1.5), col="blue", axis.lty=1, xlab="Replicates", ylab="Value (arbitrary units)")
error.bar(barx,y.means, 1.96*y.sd/10)
结果如图:
阅读(2922) | 评论(0) | 转发(0) |