[R] Hide line ends behind unfilled circles?

Marc Schwartz MSchwartz at mn.rr.com
Sun Oct 15 17:42:55 CEST 2006


On Sun, 2006-10-15 at 11:21 -0400, Michael Kubovy wrote:
> Dear r-helpers,
> 
> xx <- c(0.000, 0.210, 0.714, 0.514, 1.000, 0.190, 0.590, 0.152)
> yy <- c(0.000, 0.265, 0.256, 0.521, 0.538, 0.761, 0.821, 1.000)
> aa <- c(19, 19, 19, 21, 19, 21, 21, 21)
> x0 <- xx[c(1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7)]
> y0 <- yy[c(1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7)]
> x1 <- xx[c(2, 3, 3, 4, 6, 4, 5, 5, 6, 7, 7, 7, 8, 8)]
> y1 <- yy[c(2, 3, 3, 4, 6, 4, 5, 5, 6, 7, 7, 7, 8, 8)]
> 
> plot(yy ~ xx, pch = aa, cex = 3)
> segments(x0, y0, x1, y1)
> 
> Can anyone suggest a way of insuring that the lines are hidden behind  
> the unfilled circles?

Try this:

 # Set up the plot region
 plot(yy ~ xx, type = "n")
 
 # Draw the segments first
 segments(x0, y0, x1, y1)

 # Set the circle (pch) background colors
 col <- c(rep("black", 3), "white", "black", rep("white", 3))

 # Now draw the circles over the line intersections
 points(xx, yy, pch = 21, bg = col, cex = 3)


The "unfilled" circles in this case are actually solid white or black.
So instead of altering the point character (pch), we alter the colors.

HTH,

Marc Schwartz



More information about the R-help mailing list