[R] Lattice xyplot multipanels
Duncan Mackay
mackay at northnet.com.au
Thu May 2 07:37:05 CEST 2013
Hi Santosh
Try this :
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,
layout=c(3,1), par.strip.text = list(lines = 2),
panel=panel.superpose,
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",
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)))
tcols <- unique(rv0$dcol)
tlty <- 1
draw.key(list(columns=1,between=1,between.col=0.5,
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")))
}
)
It works for me OK so I do not know what you mean. Version information below
I just rearranged your script - there was an extra "," at the end
before the last ")"
R version 3.0.0 (2013-04-03), i386-w64-mingw32
Base packages: base, datasets, graphics, grDevices, grid, methods,
splines, stats, stats4, utils
Other packages: chron 2.3-43, foreign 0.8-53, lattice 0.20-15,
latticeExtra 0.6-24, MASS 7.3-26,
R.methodsS3 1.4.2, R.oo 1.13.0, RColorBrewer 1.0-5, VGAM 0.9-0, xtable 1.7-1
Duncan
Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au
At 11:16 2/05/2013, you wrote:
>Derar Rxperts,
>I have a strange situation.. I see curly brackets around "strip.levels" in
>multipanel strips while using lattice::xyplot. .How do I get rid of the
>curly brackets? For some reason, I am not able to reproduce the problem
>using an example below...
>Any suggestions are highly welcome!
>Thanks,
>Santosh
>
>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,
> layout=c(3,1), par.strip.text = list(lines = 2),
> 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)))
> tcols <- unique(rv0$dcol)
> tlty <- 1
>draw.key(list(columns=1,between=1,between.col=0.5,
>
> 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",
>)
>
> [[alternative HTML version deleted]]
>
>______________________________________________
>R-help at r-project.org 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