[R] drawing segments through points with pch=1

Paulo Barata pbarata at infolink.com.br
Mon Jul 21 15:05:37 CEST 2008


Dear Mr. Epstein,

This is another solution, two commands have been added
to your own code:

y=c(1.21,0.51,0.14,1.62,-0.8,0.72,-1.71,0.84,0.02,-0.12)
ybar=mean(y)
ll=length(y);
ybarv=rep(ybar,ll)
x=1:ll
plot(x,ybarv,pch=1)
segments(x[1],ybar,x[ll],ybar)
## cover the points with other points completely white:
points(x,ybarv,pch=16,col='white')
## just write a black border over the white points (with pch=1)
points(x,ybarv,pch=1,col='black')

The two new commands are layered on top of the previous ones.
To write "on top" of a plot command, use the points command.

Regards,

Paulo Barata

----------------------------------------------------------------
Paulo Barata
Fundacao Oswaldo Cruz - Oswaldo Cruz Foundation
Rua Leopoldo Bulhoes 1480 - 8A
21041-210  Rio de Janeiro - RJ
Brazil

E-mail: pbarata at infolink.com.br
Alternative e-mail: paulo.barata at ensp.fiocruz.br
----------------------------------------------------------------

 >Message: 14
 >Date: Sun, 20 Jul 2008 13:44:27 +0100
 >From: David Epstein <David.Epstein at warwick.ac.uk>
 >Subject: [R] drawing segments through points with pch=1
 >To: r-help at r-project.org
 >Message-ID: <B7CC24E1-9022-42F1-9BE2-914E73A22A60 at warwick.ac.uk>
 >Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
 >
 >Please excuse me for asking such basic questions:
 >
 >Here is my code
 >> > y=c(1.21,0.51,0.14,1.62,-0.8,0.72,-1.71,0.84,0.02,-0.12)
 >> > ybar=mean(y)
 >> > ll=length(y);
 >> > ybarv=rep(ybar,ll)
 >> > x=1:ll
 >> > plot(x,ybarv,pch=1)
 >> > segments(x[1],ybar,x[ll],ybar)
 >
 >What I get is a collection of small circles, with a segment "on top"
 >of the circles, which is almost what I want. But I don't want the
 >segment to be visible inside any small circle.
 >
 >Is there an easy way to arrange for the segment to "lie behind" the
 >pch=1 markers, as in hidden line removal, so that the circles remain
 >with nothing inside them? I tried putting the segments command first,
 >but then no segment appeared at all.
 >
 >In general, is there a method of laying a drawing "on top" of
 >another. I tried inserting add="T" as an argument to plot, and R
 >objected strongly.
 >
 >Thanks for any help
 >
 >David Epstein



More information about the R-help mailing list