Aha! With the help of Deepayan's ever-insightful hints, I was able to
do exactly what I wanted:
dotplot(
variety ~ yield | site * year
, data = barley
, subset = (site %in% c("Grand Rapids", "Duluth"))
, layout=c(4, 1)
, scales=list(
alternating = F
, tck =c(1, 0)
, x = list(at=c(20, 30))
)
, strip = function(
which.given
, which.panel
, var.name
, factor.levels
, ...
){
if(which.given == 1){
strip.default(
which.given = which.given
, which.panel = which.panel
, var.name = var.name
, factor.levels = factor.levels
, ...
)
}else{
if(which.panel[1] == 1){
panel.rect(0, 0.5, 1, 1, col = "grey", border =
"transparent")
panel.lines(x = c(0, 0), y=c(0, 1), col='black')
panel.lines(x = c(0, 1), y=c(1, 1), col='black')
}
if(which.panel[1] == 2){
panel.rect(0, 0.5, 1, 1, col = "grey", border =
"transparent")
panel.lines(x = c(0, 1), y=c(1, 1), col='black')
panel.lines(x = c(1, 1), y=c(1, 0), col='black')
panel.text(0, 0.75, labels =
factor.levels[which.panel[2]])
}
}
}
)
On 11-Jul-08, at 8:52 PM, Deepayan Sarkar wrote:
On 7/10/08, Mike Lawrence <[EMAIL PROTECTED]> wrote:
As I understand it, Duncan MacKay's solution involves simply
pasting the
factors together, as in:
|_AX_|_AY_|_BX_|_BY_|
Which isn't quite as aesthetically pleasing as what I I'm looking
for:
|___A___|___B___|
|_X_|_Y_|_X_|_Y_|
Any further suggestions?
There is no easy way, especially if you want a general solution, but
for your specific example, here is a possible starting point:
dotplot(variety ~ yield | site * year, data = barley,
subset = (site %in% c("Grand Rapids", "Duluth")),
strip = function(which.given, which.panel,
var.name, factor.levels, ...) {
str(list(which.given = which.given,
which.panel = which.panel,
var.name = var.name,
factor.levels = factor.levels, ...))
if (which.given == 1)
strip.default(which.given = which.given,
which.panel = which.panel,
var.name = var.name,
factor.levels = factor.levels, ...)
else {
panel.rect(0, 0.5, 1, 1, col = "#ccffcc",
border = "transparent")
if (which.panel[1] == 2)
panel.text(0, 0.75,
labels = factor.levels[which.panel[2]])
}
})
-Deepayan
______________________________________________
R-help@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.