Aron
Aron

Reputation: 35

levelplot (R lattice package) with 2 yaxis labels

I want to place 2 sets of y-axis labels on the graph I created using levelplot function from lattice library at R. I was able to get two sets of labels to show but they are overlapping. Below please see a minimum example. I also tried a few options at par.settings such as ylab.axis.padding and axis.components padding, but nothing seemed to change the superimposition of 2 y-labels. Perhaps they have been overwritten somehow? Any ideas will be appreciated. My example codes :

A = matrix( c(3, 1, 0, 1, 2, 3, 1, 0, 
            rep(1,4), 2, 0, 1), nrow=3, ncol=5, byrow = TRUE)  
colnames(A)= c("XXX5", "XXX4", "XXX3", "XXX2", "XXX1")

axis.build=function(side,...){
              if(side == "left"){   
                panel.axis(side=side, outside=TRUE, at=1:5,tck=0,
                           text.col="black", labels=colnames(A), text.cex=0.5)
                panel.axis(side=side, outside=TRUE, at=1:5,tck=0, 
                           text.col="brown", labels=seq(ncol(A)), text.cex=0.9 )
              } else axis.default(side=side, ...)
            }

levelplot(A, aspect="iso", shrink = c(0.8, 0.8), 
          scales= list(x=list(draw=F),cex=0.5, font=2),
          axis=axis.build,, xlab= NULL, ylab=NULL,
          col.regions=c("black", "orange", "red","purple"),
          at=c(-1, 0, 1, 2, 3), colorkey = FALSE,
          par.settings = list(axis.line=list(col="transparent"),
                              axis.components=list(bottom=list(pad1=1, pad2=3)) ))

Upvotes: 1

Views: 546

Answers (1)

Aron
Aron

Reputation: 35

I think I have found the solution. In case anyone interested : I changed the first tck=0 to tck=2, and added line.col= "transparent", thus two left axis are stacked next to each other. Voila ! However, I can't seem to find where the documentation is for using pad1 and pad2 parameters. Any suggestion?

Upvotes: 0

Related Questions