[R] Strip labels: use xyplot() to plot columns in parallel with outer=TRUE
John Maindonald
john.maindonald at anu.edu.au
Sat May 9 12:45:45 CEST 2009
The following tinkers with the strip labels, where the
different panels are for different levelf of a conditioning
factor.
tau <- (0:5)/2.5; m <- length(tau); n <- 200; SD <- 2
x0 <- rnorm(n, mean=12.5, sd=SD)
matdf <- data.frame(
x = as.vector(sapply((0:5)/2.5, function(s)x0+rnorm(n, sd=2*s))),
y <- rep(15+2.5*x0, m), taugp = factor(rep(tau, rep(n,m))))
names(matdf) <- c("x","y","taugp")
lab <- c(list("0 (No error in x)"),
lapply(tau[-1], function(x)substitute(A*s[z], list(A=x))))
xyplot(y ~ x | taugp, data=matdf,
strip=strip.custom(strip.names=TRUE,
var.name="Add error with SD", sep=expression(" = "),
factor.levels=as.expression(lab)))
Is there any way to get custom labels when the same is done by
plotting, variables in parallel?:
df <- unstack(matdf, x ~ taugp)
df$y <- 15+2.5*x0
lab2 <- c(list("0 (No error in x)"),
lapply(tau[-1], function(x)substitute("Add error with SD" ==
A*s[z],
list(A=x))))
form <- formula(paste("y ~ ", paste(paste("X", tau, sep=""),
collapse="+")))
xyplot(form, data=df, outer=TRUE)
I'd hoped that the following would do the trick, but the first label
is repeated in each panel, and the variable names are added:
xyplot(form, data=df, outer=TRUE, strip=strip.custom(strip.names=TRUE,
var.name=as.expression(lab2)))
John Maindonald email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473 fax : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.
More information about the R-help
mailing list