[R] Using Lattice, LatticeExtra - Hide right and top axes in multipanel plots

Duncan Mackay mackay at northnet.com.au
Mon Jun 10 04:09:06 CEST 2013


Hi

You had to references to strip
The axis.line in the par settings removes the axis line
Have made some slight changes to your code which may be of interest

I keep the panel arguments last and so avoid duplication


         require(grid)
xyplot(b~t|G,data=q2,groups=grp,
        type="l",
        aspect = 1,
        as.table=T,
        layout=c(3,1),
         xlab="t",
         ylab="b",
         main="Overlay of Profiles by Schools and Classes",
         par.settings=list(layout.heights = list(strip =2),
                           axis.line=list(col=0)),
        strip=strip.custom(strip.names=T,strip.levels=T,par.strip.text=list(cex=1.7,font=2),bg=0,var.name="School"),
        scales=list(x=list(rela='free',alternating=0),
                    y=list(rela='free',alternating=0),
                           col=1,
                           tck=c(1,0)),
        panel=panel.superpose,
        panel.groups=function(x=x,y=y,subscripts=subscripts,groups=groups,...,group.number){

          panel.axis(side="top",labels = F,draw.labels = F,ticks = F, 
line.lwd=0, line.alpha=0)
          panel.xyplot(x=x,y=y,subscripts=subscripts,
                       lwd=1,type="l",
                       col=q2$dcol[subscripts],
                       lty=1,
                       cex=0.7)
         }
)

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:04 10/06/2013, you wrote:
>I updated the code for the second example.. This time.. all the axes
>disappeared!!
>
>xyplot(b~t|G,data=q2,groups=grp,type="l",as.table=T,
>     layout=c(3,1), par.settings=list(axis.line=list(col=0)),
>scales=list(x=list(rela='free',alternating=0),y=list(rela='free',alternating=0),col=1,tck=c(1,0)),
>     panel=panel.superpose,
>panel.groups=function(x=x,y=y,subscripts=subscripts,groups=groups,...,group.number)
>{
>         require(grid)
>panel.axis(side="top",labels = F,draw.labels = F,ticks = F,line.col=NA,
>line.lty=NA, line.lwd=0, line.alpha=0)
>         panel.xyplot(x=x,y=y,subscripts=subscripts,pch=NA,lwd=1,type="l",
>                         col=q2$dcol[subscripts],lty=1,cex=0.7)
>         },
>strip=F,
>     #
>strip=strip.custom(strip.names=T,strip.levels=T,par.strip.text=list(cex=1.7,font=2),bg=0,
>var.name="School"),
>         xlab="t",
>         ylab="b",
>         main="Overlay of Profiles by Schools and Classes",
>)
>
>
>
>On Sun, Jun 9, 2013 at 5:52 PM, Santosh <santosh2005 at gmail.com> wrote:
>
> > Dear Rxperts,
> > How do I hide the top and right axes in multiple panel plots? A couple of
> > examples are provided below.. Would highly appreciate appreciate your
> > assistance..
> >
> > #Example 1
> > library(latticeExtra)
> > xyplot((1:200)/20 ~ (1:200)/20, type = c("p", "g"),
> > scales = list(x = list(log = 2,alternating=0), y = list(log =
> > 10,alternating=0)),
> > xscale.components = xscale.components.log10ticks,
> > yscale.components = yscale.components.log10ticks,top=F,right=F)
> >
> > #Example 2
> > 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),]
> > xyplot(b~t|G,data=q2,groups=grp,type="l",as.table=T,
> >     layout=c(3,1), par.strip.text = list(lines = 2),
> >
> > 
> scales=list(x=list(rela='free',alternating=0),y=list(rela='free',alternating=0),col=1,tck=c(1,0)),
> >     panel=panel.superpose,
> > 
> panel.groups=function(x=x,y=y,subscripts=subscripts,groups=groups,...,group.number)
> > {
> >         require(grid)
> >  panel.axis(side="top",labels = F,draw.labels = F,ticks = F,line.col=NA,
> > line.lty=NA,   line.lwd=0, line.alpha=0)
> >         panel.xyplot(x=x,y=y,subscripts=subscripts,pch=NA,lwd=1,type="l",
> >                         col=q2$dcol[subscripts],lty=1,cex=0.7)
> >         },
> > strip=F,
> >     #
> > 
> strip=strip.custom(strip.names=T,strip.levels=T,par.strip.text=list(cex=1.7,font=2),bg=0,
> > var.name="School"),
> >         xlab="t",
> >         ylab="b",
> >         main="Overlay of Profiles by Schools and Classes",
> > )
> >
> >
> > Thanks so much,
> > Santosh
> >
>
>         [[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