On Fri, 2006-07-07 at 11:47 -0400, Lu, Jiang Jane wrote: > Hi, > > I am trying to plot odds ratios and the corresponding confidence > intervals in horizontal segments. It would be ideal if the confidence > interval segment can be drawn with little vertical bars at both ends. I > have tried very hard to change the type of ends by using 'lend' > arguments, but cannot make it. I even tried 'arrows()', but still > failed. Following is the code I use: > ==================================================== > drug.or <- c(1.017,1.437,1.427,2.211) > drug.orl <- c(0.715,1.075,1.103,1.696) > drug.oru <- c(1.446,1.922,1.845,2.882) > > yaxis <- seq(1,4,by=1) > > plot(x=drug.or,y=yaxis,type='p',pch=17,xlim=c(0,3),axes=FALSE, > xlab='Odds Ratio',ylab='',main='Reference Group: A only') > axis(1,at=seq(0,3,by=0.5),labels=paste(seq(0,3,by=0.5))) > axis(2,at=yaxis,las=2) > > > segments(x0=drug.orl,x1=drug.oru,y0=yaxis,y1=yaxis,col=4,lend=2) > > # or try > #arrows(x0=drug.orl,x1=drug.oru,y0=yaxis,y1=yaxis,length=0.1,angle=0,cod > e=3,col=4,lend=2) > > box() > =====================================================
Try this using arrows(): drug.or <- c(1.017,1.437,1.427,2.211) drug.orl <- c(0.715,1.075,1.103,1.696) drug.oru <- c(1.446,1.922,1.845,2.882) yaxis <- seq(1, 4, by=1) plot(drug.or, yaxis ,type='p', pch=17, xlim=c(0,3), axes=FALSE, xlab='Odds Ratio', ylab='', main='Reference Group: A only') axis(1, at=seq(0,3,by=0.5), labels=paste(seq(0,3,by=0.5))) axis(2, at=yaxis, las=2) arrows(drug.orl, yaxis, drug.oru, yaxis, angle=90, length=0.1, code=3, col=4, lend=2) You need to specify an angle of 90 degrees to get the arrow heads to be perpendicular to the primary line segment. An angle of 0 superimposes the heads on the primary line segment, so they don't show. HTH, Marc Schwartz ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html