Skip to content

How to use Lines function to draw the error bars?

9 messages · Rui Barradas, liang.che at us.pwc.com, Joseph Clark +1 more

#
Hello,

Do you want to use the lines function or do you want to draw error bars? 
The two are not the same, error bars are usualy drawn with function 
arrows(). The trick is in argument 'angle', set it to 90 degreesand have 
square arrow heads.

dat <- read.table(text="
  fit               lwr            upr
1  218.4332 90.51019 346.3561
2  218.3906 90.46133 346.3198
3  218.3906 90.46133 346.3198
4  161.3982 44.85702 277.9394
5  192.4450 68.39903 316.4909
6  179.8056 56.49540 303.1158
7  219.5406 91.52707 347.5542
8  162.6761 46.65760 278.6945
9  193.8506 70.59838 317.1029
10 181.3816 58.11305 304.6502
11 221.2871 92.14366 350.4305
12 164.2947 47.91081 280.6785
13 195.3415 72.04109 318.6418
14 182.7447 58.68660 306.8028
15 222.5223 91.86550 353.1791
", header = TRUE)
dat

ylm <- with(dat, range(range(fit), range(lwr), range(upr)))
plot(dat$fit, ylim = ylm, xlim = c(0, 16))
with(dat, arrows(1:15, fit, 1:15, lwr, angle = 90, length = 0.1))
with(dat, arrows(1:15, fit, 1:15, upr, angle = 90, length = 0.1))


Hope this helps,

Rui Barradas

Em 08-10-2012 20:11, liang.che at us.pwc.com escreveu:
#
If you had provided reproducible code, you would already have your answer.
You should spend a few hours with one or more of the freely available R
tutorials. In your original post you have the line:

prd<-predict.lm(fit,newdata,interval=c("confidence"),level=0.95)

?predict.lm tells you that the function returns a matrix (in your case prd)
so either of the following should work:

library(plotrix)

plotCI( x=1:15, y=prd$fit, ui=prd$upr, li=prd$lwr)

or

plotCI( x=1:15, y=prd[,1], ui=prd[,3], li=prd[,2])

This is very basic stuff.

----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352