[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