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

Lu, Jiang Jane LuJ at edc.pitt.edu
Fri Jul 7 18:37:58 CEST 2006


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 at ucl.ac.uk] 
Sent: Friday, July 07, 2006 12:24 PM
To: Lu, Jiang Jane
Cc: r-help at 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/
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list