Hi all,

I have this problem with lattice that xyplot() won't draw some of my axis 
labels if the type (i.e. the relation argument) of scales is set as free. For 
example, in the plot below, I would want it to also show:

1. the labels E1,...E6 below the 10th panel (i.e. 3rd row, 2 col)....just as it 
is now done below the 12th panel.... 

2. as well as the labels (2,4,6,8) on the top of panels 1 and 3 (by "on top", i 
mean above the strips, as xyplot normally does by default but can't seem to be 
willing to do in the example below).


PS: i had originally posted this question on stackoverlow but since i didn't 
get an answer there i've deleted it there and posting it here.

Happy Easter,

        B<-structure(list(yval = c(0.7, 0.61, 0.65, 0.63, 6.08, 0.64, 5.68, 
6.77, 1.48, 7.71, 0.82, 1.15, 0.54, 1.01, 0.59, 4.84, 0.69, 0.71, 8.7, 0.48, 
0.69, 4.81, 1.42, 1.19, 0.84, 4.89, 0.85, 0.67, 7.07, 0.66, 7.93, 0.69, 5.94, 
0.47, 0.7, 0.73, 0.5, 3.62, 9.55, 4.48, 9.44, 1.06, 0.36, 0.73, 0.67, 1.4, 
0.56, 7.07, 0.69, 0.42, 3.72, 0.8, 0.94, 0.66, 0.48, 6.94, 3.19, 0.84, 1.27, 
1.85, 5.23, 0.75, 0.55, 4.69, 8.51, 3.98, 0.65, 4.72, 0.94, 0.86, 6.27, 3.42, 
1.03, 1.83, 0.86, 8.59, 0.72, 7.92, 0.84, 0.49, 0.78, 7.31, 5.15, 0.88, 0.57, 
0.95, 0.69, 8.77, 0.86, 0.82, 2.02, 6.99, 5.01, 0.84, 1.09, 1.02, 0.66, 9.23, 
0.74, 2.21), xval = c(0.7, 0.61, 0.65, 0.63, 6.08, 0.64, 5.68, 6.77, 1.48, 
7.71, 0.82, 1.15, 0.54, 1.01, 0.59, 4.84, 0.69, 0.71, 8.7, 0.48, 0.69, 4.81, 
1.42, 1.19, 0.84, 4.89, 0.85, 0.67, 7.07, 0.66, 7.93, 0.69, 5.94, 0.47, 0.7, 
0.73, 0.5, 3.62, 9.55, 4.48, 9.44, 1.06, 0.36, 0.73, 0.67, 1.4, 0.56, 7.07, 
0.69, 0.42, 3.72, 0.8, 0.94, 0.66, 0.48, 6.94, 3.19, 0.84, 1.27, 1.85, 5.23, 
0.75, 0.55, 4.69, 8.51, 3.98, 0.65, 4.72, 0.94, 0.86, 6.27, 3.42, !
 1.03, 1.83, 0.86, 8.59, 0.72, 7.92, 0.84, 0.49, 0.78, 7.31, 5.15, 0.88, 0.57, 
0.95, 0.69, 8.77, 0.86, 0.82, 2.02, 6.99, 5.01, 0.84, 1.09, 1.02, 0.66, 9.23, 
0.74, 2.21), gval = c(1, 3, 4, 4, 1, 5, 5, 4, 6, 4, 2, 6, 4, 3, 4, 4, 3, 5, 1, 
5, 1, 5, 6, 6, 6, 1, 1, 1, 1, 5, 1, 3, 4, 5, 4, 3, 5, 1, 5, 4, 5, 6, 3, 4, 3, 
6, 3, 1, 2, 1, 3, 2, 1, 3, 4, 5, 4, 6, 6, 6, 5, 2, 1, 4, 5, 5, 4, 1, 1, 1, 3, 
2, 2, 6, 2, 3, 3, 4, 1, 3, 2, 1, 3, 6, 5, 2, 6, 4, 2, 2, 1, 1, 5, 2, 6, 6, 3, 
1, 4, 3), type = structure(c(2L, 3L, 3L, 3L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 1L, 
3L, 2L, 1L, 3L, 3L, 2L, 1L, 1L, 3L, 2L, 1L, 2L, 3L, 2L, 3L, 3L, 2L, 1L, 2L, 1L, 
2L, 3L, 1L, 2L, 3L, 2L, 1L, 3L, 1L, 2L, 3L, 2L, 1L, 1L, 1L, 2L, 3L, 2L, 3L, 3L, 
1L, 3L, 2L, 2L, 2L, 3L, 1L, 2L, 2L, 3L, 1L, 2L, 1L, 3L, 3L, 2L, 3L, 3L, 2L, 2L, 
2L, 2L, 2L, 1L, 3L, 1L, 3L, 1L, 2L, 2L, 2L, 3L, 3L, 2L, 3L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 1L, 3L, 1L, 3L, 2L), .Label = c("0", "1", "5"), class = "factor"), 
cr = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L!
 , 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 

1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = 
c("0.2", "0.3", "0.4"), class = "factor"), p = structure(c(1L, 2L, 1L, 1L, 2L, 
1L, 4L, 4L, 2L, 4L, 3L, 1L, 2L, 2L, 1L, 4L, 1L, 1L, 3L, 1L, 1L, 3L, 3L, 4L, 3L, 
2L, 4L, 1L, 4L, 1L, 4L, 1L, 4L, 3L, 1L, 1L, 3L, 3L, 4L, 4L, 4L, 4L, 2L, 1L, 2L, 
1L, 1L, 3L, 1L, 1L, 3L, 2L, 3L, 1L, 1L, 3L, 2L, 3L, 3L, 1L, 2L, 1L, 1L, 3L, 3L, 
4L, 3L, 2L, 4L, 4L, 4L, 3L, 3L, 1L, 4L, 4L, 2L, 3L, 3L, 1L, 2L, 4L, 2L, 3L, 1L, 
2L, 4L, 4L, 3L, 3L, 4L, 3L, 2L, 3L, 4L, 4L, 1L, 3L, 2L, 4L), .Label = c("4", 
"8", "12", "20"), class = "factor"), grp = c(4, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 
5, 2, 4, 5, 2, 2, 4, 5, 5, 2, 4, 5, 4, 2, 4, 2, 2, 4, 5, 4, 5, 4, 2, 5, 4, 2, 
4, 5, 2, 5, 4, 2, 4, 5, 5, 5, 4, 2, 4, 2, 2!
 , 5, 2, 4, 4, 4, 2, 5, 4, 4, 2, 5, 4, 5, 2, 2, 4, 2, 2, 4, 4, 4, 4, 4, 5, 2, 
5, 2, 5, 4, 4, 4, 2, 2, 4, 2, 5, 4, 4, 4, 4, 4, 4, 4, 5, 2, 5, 2, 4)), .Names = 
c("yval", "xval", "gval", "type", "cr", "p", "grp"), row.names = c(NA, -100L), 
class = "data.frame")

And the code:

    library(lattice)
    library(robustbase)
    library(latticeExtra)
    
    typis <- c("A","B","C")
    types <- 1:4
    
    mypanel <- function(...){
          if(current.row()<3){  
                panel.grid(v=-1,h=-1,col="dark grey")
                panel.xyplot(...)
          } else {
                panel.grid(v=-1,h=-1,col="dark grey")
                cl <- trellis.par.get()$superpose.line$col
                
panel.bwplot(...,pch="-",cex=3,fill=cl,horizontal=FALSE,stats=adjboxStats)
          }
    }
    
    
    cl <- trellis.par.get()$superpose.line$col
    lmi <- rep(list(c(0,10)),12)
    lbl <- rep(list(NULL),12)
    lbl[[9]] <- lbl[[12]]<-c("E1","E2","E3","E4","E5","E6")
    lbl[[1]] <- lbl[[3]]<-c(2,4,6,8)
    aty <- rep(list(NULL),12)
    aty[[1]] <- aty[[9]] <- TRUE
    atx <- rep(list(NULL),12)
    atx[[12]] <- atx[[10]] <- seq(1.5,9,by=1.5)
    rtl <- c(45,0)
    
    useOuterStrips(xyplot(B$yval~B$xval|B$p*B$grp,group=B$gval,
        type=c("l","g"),lwd=2,cex.lab=1.5,as.table=TRUE,
        par.settings=list(cex=2,par.xlab.text=list(cex=1),axis.text=list(cex=1),
        
par.ylab.text=list(cex=1),layout.widths=list(axis.panel=0,right.padding=4),
        
layout.heights=list(axis.panel=0,top.padding=4,bottom.padding=4)),panel=mypanel,
        scales=list(y=list(axs="i",limits=lmi,relation="free",at=aty),
        x=list(relation="free",axs="i",limits=lmi,at=atx,labels=lbl,rot=rtl))))
    
    trellis.focus("panel",4,2,clip.off=TRUE,highlight=FALSE)
    panel.axis(side="right",at=c(2,4,6,8),outside=TRUE,text.cex=1)

______________________________________________
R-help@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.

Reply via email to