[R] Different gridlines per panel in xyplot

Rene Braeckman RMan54 at cox.net
Wed Feb 21 07:06:01 CET 2007


I solved my own problem. Suddenly remembered the list of very useful
functions under "Accessing Auxiliary Information During Plotting" in the
help pages.

Here is the line that did the trick:

panel.abline(h=yScale[[panel.number()]], v=xScale, col.line="gray")

Rene 

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Rene Braeckman
Sent: Tuesday, February 20, 2007 8:52 PM
To: r-help at stat.math.ethz.ch
Subject: [R] Different gridlines per panel in xyplot

In the example R script below, horizontal gray gridlines are drawn at y
coordinates where the points are drawn with the code:
 
panel.abline(h=y, v=xScale, col.line="gray")

How do I change this so that the horizontal gray gridlines are drawn at y
coordinates where the y labels are drawn? The challenge is that each panel
has different y-ranges (in my real example the y-ranges and y-intervals are
even more different). For example, I wish I could use the yScale list as the
h parameter in abline, but it does not work with a list.
 
Thanks for any help.
Rene
 
library(lattice)
Subj <- rep(1:4,each=3)
Time <- rep(1:3,4) + 0.1
Conc <- (1:12) + 0.1
df <- data.frame(Subj,Time,Conc)
xScale <- 1:3
yScale <- list(1:3,4:6,7:9,10:12)
xyplot(Conc ~ Time | Subj,
       data = df,
       layout = c(2,2),
       type="b",
       scales=list(
          x=list(at=xScale),
          y=list(at=yScale,relation="free")
       ),
       panel = function(x,y,...) {
           panel.abline(h=y, v=xScale, col.line="gray")
           panel.xyplot(x,y,...)
      }
)

______________________________________________
R-help at 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
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list