Re: [R] How to change the type of segments ends?

From: Lu, Jiang Jane <LuJ_at_edc.pitt.edu>
Date: Sat 08 Jul 2006 - 02:37:58 EST


Thank you all for such a prompt response. I misunderstood the meaning of 'lend' in par(). Now I have got the ideal confidence segments. I appreciate all the specific explanations you have offered.

Sincerely,

Jane

-----Original Message-----
From: Gavin Simpson [mailto:gavin.simpson@ucl.ac.uk] Sent: Friday, July 07, 2006 12:24 PM
To: Lu, Jiang Jane
Cc: r-help@stat.math.ethz.ch
Subject: Re: [R] How to change the type of segments ends?

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()
> =====================================================
>
>
> Any comments or suggestions would be greatly appreciated.
>
>
> Jane

Hi Jane,

Thanks for the reproducible example. Why do you think lend will do what you want? From ?par:

'lend' The line end style. This can be specified as an integer or

          string:

          '0' and '"round"' mean rounded line caps [_default_];

          '1' and '"butt"' mean butt line caps;

          '2' and '"square"' mean square line caps.

          As from R 2.3.0 this can be specified inline.

This is talking about line endings - do you want hard or soft line ends or type of joins in line segments? It does not mean the type of line endings you might get in Adobe Illustrator or Inkscape vector drawing packages.

You were close with 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(x = drug.or, y = yaxis, pch=17, xlim = c(0,3), axes=FALSE,

     xlab = 'Odds Ratio', ylab = '', main = 'Reference Group: A only') labs <- seq(0, 3, by = 0.5)
axis(1, at = labs, labels = labs)
axis(2, at = yaxis, las = 2)
arrows(x0 = drug.orl, x1 = drug.oru, y0 = yaxis, y1 = yaxis, length=0.1, code = 3, col = 4, angle = 90)

the angle argument is the key. See arrows? You don't need lend at all to do what you want.

HTH G

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Gavin Simpson                 [t] +44 (0)20 7679 0522
 ECRC & ENSIS, UCL Geography,  [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/cv/
 London, UK. WC1E 6BT.         [w] http://www.ucl.ac.uk/~ucfagls/
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

______________________________________________
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
Received on Sat Jul 08 02:41:28 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 08 Jul 2006 - 04:15:22 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.