# [R] Error bars on barplots

KAREN KOTSCHY karen at gecko.biol.wits.ac.za
Tue Sep 7 12:24:38 CEST 1999

```Hi everyone

I've finally had a chance to look at this problem again. Thanks to
Paul Murrell and Bendix Carstensen, putting error bars on barplots
with single bars is quite simple, as barplot returns the x locations
of the bar midpoints.

However... with plots where you have groups of bars (where x is a
matrix and beside=T), it is not as simple. One can work out the x
locations of each individual bar manually, knowing the bar width
and the midpoint of the group. I've written a function to do this when
there are 3 bars in a group (see below). I'm sure the R gurus out
there could suggest a more elegant or a simpler way!

Here are my functions, for anyone else wanting to put error bars
onto these kind of barplots. Hopefully someone might find them
useful.

# This calculates the x locations of individual bars, where there are
# 3 bars per group.
# Arguments: x = the vector of bar group midpoints returned by
# barplot.

barxloc <- function(x) {
j <- 1
v <- c()
for (i in 1:length(x)) {
v[[j]] <- x[[i]] - 1
j <- j + 1
v[[j]] <- x[[i]]
j <- j + 1
v[[j]] <- x[[i]] + 1
j <- j + 1
}
return(v)
}

# This adds error bars to the plot (y+se only):
# Arguments: x = as above, means and se = matrices containing
# the data to be plotted.

errbars <- function(x, means, se) {
a <- barxloc(x)
a <- unlist(a)
arrows(a, means, a means+se, angle=90, code=2, length=0.1)
}

----------------------------

Karen Kotschy
Centre for Water in the Environment
University of the Witwatersrand
Johannesburg

Tel: 011 716-2218
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```