[R] Alternate tick labels in xyplot

Lisa Daniel lisadaniel2013 at yahoo.com
Fri Feb 15 00:56:54 CET 2013



Dear David and Duncan,

Thank you for the responses.

David:

I was able to fix it with grid.text().

Duncan:
I would certainly look into ?scale.components in latticeExtra package (xscale.components.default)

The code for the figure is below.
library(lattice)
library(grid)

xy <-xyplot(decrease ~ treatment, OrchardSprays,
    main= "Some plot",
        groups = rowpos, type = "a",
    scales=list(x=list(at=seq(1,8,1),labels=c('A','','C','','E','','G',''))),
                page     = function(n){
                         grid.text(LETTERS[j],
                         y = 0.95,
                         x = 0.15,
                         default.units = "npc",
                         just = c("left"),
                         gp = gpar(fontsize = 12,fontface="bold") )
                       },
    par.settings = c(simpleTheme(lty=1:8, col="black",lwd=2),list(axis.components=list(bottom=list(tck=c(0,1))),layout.heights = list(main = 1.2,
                       sub  = 0,
                       axis.top = 0.2,
                       top.padding  = 0.1,
                       bottom.padding = 0,
            axis.bottom=0.8)) ),
        auto.key = list(x = 0.2, y = 0.9,
        cex = 0.75, points = FALSE, lines = TRUE)) 
j=1
print(xy, pos = c(0.0, 0.50, 0.33, 0.95), more = TRUE)
j=j+1
print(xy, pos = c(0.33, 0.50, 0.66, 0.95), more = TRUE)
j=j+1
print(xy, pos = c(0.66, 0.50, 0.99, 0.95), more = TRUE)
j=j+1
print(xy, pos = c(0.0, 0.0, 0.33, 0.45), more = TRUE)
j=j+1
print(xy, pos = c(0.33, 0.0, 0.66, 0.45), more = TRUE)
j=j+1
print(xy, pos = c(0.66, 0.0, 0.99, 0.45), more = FALSE)
grid.text("Upper row", x=0.5, y=0.97, gp=gpar(fontsize=12, col="black"))
grid.text("Lower row", x=0.5, y=0.47, gp=gpar(fontsize=12, col="black"))



Thanks,
Lisa


----- Original Message -----
From: David Winsemius <dwinsemius at comcast.net>
To: Lisa Daniel <lisadaniel2013 at yahoo.com>
Cc: "r-help at r-project.org" <r-help at r-project.org>
Sent: Thursday, February 14, 2013 4:31 PM
Subject: Re: [R] Alternate tick labels in xyplot


On Feb 14, 2013, at 10:52 AM, Lisa Daniel wrote:

> Dear Rhelp,
> I was able to solve the tick labels part.  If somebody can help me in creating title for each row of figures above the individual headings, it will be great.

I think you need to be looking at grid.text() in package grid.

> library(grid)
> library(lattice)
> xy <-xyplot(decrease ~ treatment, OrchardSprays,
>     main= "Some plot",
>         groups = rowpos, type = "a",
>     scales=list(x=list(at=seq(1,8,1),labels=c('A','','C','','E','','G',''))),
>                 page     = function(n){
>                          grid.text(LETTERS[j],
>                          y = 0.95,
>                          x = 0.15,
>                          default.units = "npc",
>                          just = c("left"),
>                          gp = gpar(fontsize = 12,fontface="bold") )
>                        },
>     par.settings = c(simpleTheme(lty=1:8, col="black",lwd=2),list(axis.components=list(bottom=list(tck=c(0,1))),layout.heights = list(main = 1.2,
>                        sub  = 0,
>                        axis.top = 0.2,
>                        top.padding  = 0.1,
>                        bottom.padding = 0)) ),
>         auto.key = list(x = 0.2, y = 0.9,
>         cex = 0.75, points = FALSE, lines = TRUE)) 
> j=1
> print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE)
> j=j+1
> print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE)
> j=j+1
> print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE)
> 
> Many thanks,
> Lisa
> 
> 
> 
> 
> ----- Original Message -----
> From: Lisa Daniel <lisadaniel2013 at yahoo.com>
> To: "r-help at r-project.org" <r-help at r-project.org>
> Cc: 
> Sent: Thursday, February 14, 2013 12:14 PM
> Subject: Alternate tick labels in xyplot
> 
> Dear Rhelp,
> 
> I would like to get alternate tick labels for the xyplot:
> library(lattice)
> library(grid)
> 
> xy <-xyplot(decrease ~ treatment, OrchardSprays,
>     main= "Some plot",
>         groups = rowpos, type = "a",
>                 page     = function(n){
>                          grid.text(LETTERS[j],
>                          y = 0.95,
>                          x = 0.15,
>                          default.units = "npc",
>                          just = c("left"),
>                          gp = gpar(fontsize = 12,fontface="bold") )
>                        },
>     par.settings = c(simpleTheme(lty=1:8, col="black",lwd=2),list(layout.heights = list(main = 1.2,
>                        sub  = 0,
>                        axis.top = 0.2,
>                        top.padding  = 0.1,
>                        bottom.padding = 0)) ),
>         auto.key = list(x = 0.2, y = 0.9,
>         cex = 0.75, points = FALSE, lines = TRUE)) 
> j=1
> print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE)
> j=j+1
> print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE)
> j=j+1
> print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE)
> j=j+1
> print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE)
> 
> 
> similar to the x-axis in the code below, but somehow it is not working when I pasted 'list(axis.components=...) in the above code:
> xyplot(rnorm(12) ~ 1:12 , type="l",
> scales=list(x=list(at=seq(2,12,2),labels=c(1, ' ', 3 , ' ' , 5 , ' ' ))),
> par.settings=list(axis.components=list(bottom=list(tck=c(0,1))))) 
> 
> scales=list(x=list(at=seq(1,8,1),labels=c('A', ' ', 'C', ' ' ,'E' , ' ','G',' '))),
> 
> If possible, I would like a heading for each rows (justified to center) above the individual heading.
> 
> Please help.
> Many thanks,
> Lisa.
> 
> 
> ______________________________________________
> 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.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list