Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the y-axis text size with doubleYScale plot

Tags:

r

lattice

I made a doubleYScale plot:

library(lattice)
library(latticeExtra)

# Some data
foo <- list(x = 1:100, y = cumsum(rnorm(100)))

obj1 <- xyplot(y~ x, data=foo,xlab=list(cex=1.2), 
               main="TOtalProduktion VS SummaSkulder/TotaltKapital i procent",
               type = c("l","g"),col="black",
               lty=1,key = simpleKey(col=c('black'),
               text=c("Produktion"),cex=1.2,points=FALSE, lines=TRUE),
               scales=list(x=list(rot=90,tick.number=25,
               cex=1,axs="r")))

obj2 <- xyplot(y^2 ~ x,data= foo ,type = "o",col="black",
               lty=9,key = simpleKey(col=c('black'),
               text=c("Summa.skulder"),cex=1.2,lines=FALSE,points= TRUE))

doubleYScale(obj1, obj2, add.ylab2 = TRUE)

enter image description here

The problem is that I cant manage to change the text size of the y-axic labels (y and y^2 text, I want to make it larger). It is no problem to change it if I only plot obj1 or obj2 separately, but it doesn't work for doubleYScale...

I can on the other hand change the size of numbers on the y-axices with:

trellis.par.set(axis.text=list(cex=1))

Any suggestions? I can't manage to find a way :(

like image 637
user1665355 Avatar asked Dec 14 '12 09:12

user1665355


2 Answers

Here is another solution directly with lattice and latticeExtra: where you can set the size of all axis labels independently:

library(lattice)
library(latticeExtra)
foo <- list(x = 1:100, y = cumsum(rnorm(100)))

obj1 <- xyplot(y~ x, data=foo,
               xlab=list("Thing", fontsize = 22),
               ylab = list("Something", fontsize = 32),
               ylab.right = list("Anything", fontsize = 16),
               par.settings = simpleTheme(col = 1),
               type = c("l","g"),
               lty=1,
               scales=list(x=list(rot=90,tick.number=25,
                                  cex=1,axs="r")))

obj2 <- xyplot(y^2 ~ x,data= foo ,type = "o",col="black",
               lty=9)

doubleYScale(obj1, obj2)

enter image description here

like image 106
sparrow Avatar answered Dec 08 '22 10:12

sparrow


    library(grid)
    ##  the text size of the 2 y-axic labels
    grid.edit(gPath='GRID.text',grep=T,global=T,gp =gpar(cex=3))

If you want to set different axis sizes

    grobs <- sapply(grid.get(gPath='GRID.text',grep=T,global=T),'[')['name',]
    grid.edit(gPath=grobs[[1]],gp =gpar(cex=2))
    grid.edit(gPath=grobs[[2]],gp =gpar(cex=1.5))

enter image description here

like image 44
agstudy Avatar answered Dec 08 '22 08:12

agstudy