Dear Rxperts,
Is there a simpler way to generate multipanel grouped individual profile
plots? All individuals of a group within a panel have the same color. As
of now I am using lattice::xyplot to get the desired effect. Please feel
free to suggest other ideas.
Also, I am trying to create a generalized function which goes on similar
lines like this..
grpPlot <- function(dat, mpgrp=quote(G), grp=quote(interaction(D,a,drop=T))
{
lines for xyplot as shown below...
}
Below is the sample code... for illustration purposes...
q <-
data.frame(G=rep(paste("G",1:3,sep=""),each=50),D=rep(paste("D",1:5,sep=""),each=30),a=rep(1:15,each=10),t=rep(seq(10),15),b=round(runif(150,10,20)))
q$grp <- paste(q$D,q$a,sep=":")
q$grp <- ordered(q$grp, levels=unique(q$grp))
q$dcol <- unlist(sapply(q$D,function(x)
switch(x,"D1"="orange","D2"="blue","D3"="red",
"D4"="seagreen",
"D5"="black")))
q2 <- q[order(q$G,q$D,q$a,q$t),]
ref3 <- subset(q2, !duplicated(a))
xyplot(b~t|G,data=q2,groups=grp,type="l",as.table=T,par.settings=my.theme,
layout=c(3,1), par.strip.text = list(lines = 2),
scales=list(x=list(rot=90,rela='free',cex=1.3),
y=list(log=F,at=10**c(0:7),labels=10**c(0:7))),
panel=panel.superpose,
panel.groups=function(x=x,y=y,subscripts=subscripts,groups=groups,...,group.number)
{
require(grid)
panel.xyplot(x=x,y=y,subscripts=subscripts,pch=NA,lwd=1,type="l",
col=q2$dcol[subscripts],lty=1,cex=0.7)
rv0 <-ref3[ref3$G%in%unique(q2$G)[panel.number()],]
tids <- paste(as.character(unique(rv0$D)))#
as.character(rv0$NMID)
tcols <- unique(rv0$dcol)
tlty <- 1
draw.key(list(columns=1,between=1,between.col=0.5,
lines=list(lty=tlty,col=tcols,size=3),text=list(lab=tids,col=tcols,cex=0.8),title="Classes",cex.title=1.1
),
draw = T,vp = viewport(x = unit(0.8, "npc"), y = unit(0.9,
"npc")))
},
strip=strip.custom(strip.names=T,strip.levels=T,par.strip.text=list(cex=1.7,font=2),bg=0,
var.name="School"),
xlab=deparse(substitute(x)),
ylab=deparse(substitute(y)),
main="Overlay of Profiles by Schools and Classes",
)
Thanks so much..
Regards,
Santosh
[[alternative HTML version deleted]]