[R] Custom strips in lattice

From: Jim Price <price_ja_at_hotmail.com>
Date: Wed, 18 Jun 2008 09:28:36 -0700 (PDT)

I've recently been playing with strip functions for a data presentation I'd like to use, and have a couple questions. I've cannibalised the useOuterStrips function from latticeExtra to give me the following sample code:

library(lattice)

myData <- expand.grid(

	type = c('First 3 days','Whole profile'),
	sub = paste('Subject', 1:3, '\nDescription'),
	time = 1:10

)
myData$resp <- rnorm(nrow(myData))

y.limits <- rep(with(myData, by(resp, sub, function(.x) range(pretty(range(.x))))), each = 2)

xyplot(

	resp ~ time | type * sub,
	data = myData,
	strip.left = function(which.given, which.panel, var.name, par.strip.text,
...) 
		if(which.given == 1)
			strip.default(which.given = 1, which.panel = which.panel[1], var.name =
var.name[1], par.strip.text = list(cex = 0.75), ...),
	strip = function(which.given, which.panel, var.name, par.strip.text, ...)
		if(which.given == 2)
			strip.default(which.given = 1, which.panel = which.panel[2], var.name =
var.name[2], par.strip.text = list(cex = 0.75), ...),
	as.table = T,
	scales = list(
		x = list(relation = 'free', limits = list(c(1,3), c(1,10))),
		y = list(relation = 'free', limits = y.limits)
	)

)

There are 2 changes I'd like to make:

Firstly, I'd like to expand the top strip only, so I can add more (than 2) rows of text. Normally I'd do that through calling par.strip.text with the lines argument. However, this appears to effect both strips. As above, I could define a par.strip.text inside each custom function, but this doesn't appear to work; indeed, the default for strip.default, trellis.par.get('add.text'), doesn't include this as an option, so I assume that there is some preprocessing that goes on (in the prepanel function?).

Secondly, although I have custom y-axis ranges, you can see from the graph that the rows represent the same subject; hence, in the interest of saving space, I'd prefer to have no gap between columns. This isn't a show stopper though, so if it's not possible it's no great loss.

I've looked through Deepayan's book (and, as many have done previously, extend my thanks as, despite being a fairly frequent lattice user, I've learnt a great deal from it - although I've not finished it yet, so if the answers are in there somewhere my apologies!) and couldn't see these issues addressed. If anyone has a solution it would be much appreciated.

Thanks!

Jim Price
Cardiome Pharma Corp.

sessionInfo()
R version 2.7.0 (2008-04-22)
i386-pc-mingw32

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] latticeExtra_0.4-1 RColorBrewer_1.0-2 lattice_0.17-6

loaded via a namespace (and not attached):
[1] grid_2.7.0

-- 
View this message in context: http://www.nabble.com/Custom-strips-in-lattice-tp17986269p17986269.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.
Received on Wed 18 Jun 2008 - 20:54:02 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 19 Jun 2008 - 00:31:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive