Dear R-helpers, the problem I'm facing today is to convince lattice to paint some areas in gray. The areas I would like to have in gray, are confidence bands
I've googled around in the mailing list archives and eventually find some clues. This link is my starting point http://tolstoy.newcastle.edu.au/R/e2/help/07/04/15595.html I'm reproducing here the code for your convenience est <- c(1:4, 3:6, 7, 9, 11, 13, 12, 15, 18, 21) cond <- rep(c('a','b'), each = 8) grp <- rep(c('I', 'II'), each = 4, 2) x <- rep(c(.5, .7, .9, 1.1), 4) upper <- est + 1 lower <- est - 1 data <- data.frame(est = est, x = x, cond = cond, grp = grp, upper = upper, lower = lower) rm(est, cond, grp, x, upper,lower) panel.bands <- function(x, y, upper, lower, subscripts, col, ..., font, fontface) { upper <- upper[subscripts] lower <- lower[subscripts] panel.polygon(c(x, rev(x)), c(upper, rev(lower)),...) } xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands',...) panel.xyplot(x, y, ...) }) The result is a lattice object with the confidence bands painted in cyan and pink. These are the areas I would like to have in gray. I think that the cyan and pink colors come from trellis.par.get("superpose.polygon")[[2]][1:2] To change the colors I tried, unsuccessfully, the following 4 ways: 1) trellis.par.set("superpose.polygon", list(col="gray")) xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands',...) panel.xyplot(x, y, ...) }) 2) xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands', col="gray", ...) panel.xyplot(x, y, ...) }) 3) ltheme <- canonical.theme(color = FALSE) ltheme$superpose.polygon$col="gray" xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, theme=ltheme, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands',...) panel.xyplot(x, y, ...) }) 4) panel.bands.1 <- function(x, y, upper, lower, subscripts, col, ..., font, fontface) { upper <- upper[subscripts] lower <- lower[subscripts] panel.polygon(c(x, rev(x)), c(upper, rev(lower)), col="gray", ...) } xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands.1',...) panel.xyplot(x, y, ...) }) I suspect that superpose polygon is not involved at all in the process, and in test.gray <- xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands',...) panel.xyplot(x, y, ...) }) str(test.gray) I cannot find any indication on the colors. Strangely enough, the following code seems to modify something, the border of the colored areas. panel.bands.2 <- function(x, y, upper, lower, subscripts, col, ..., font, fontface) { upper <- upper[subscripts] lower <- lower[subscripts] panel.polygon(c(x, rev(x)), c(upper, rev(lower)), border= 2, ...) } xyplot(est ~ x | cond, group = grp, data = data, type = 'b', upper = data$upper, lower = data$lower, panel = function(x, y, ...){ panel.superpose(x, y, panel.groups = 'panel.bands.2',...) panel.xyplot(x, y, ...) }) In other words I can modify the borders, but not the shaded areas. This sounds strange to me. Where am I wrong ? Thanks in advance for your time. -- Ottorino-Luca Pantani, Università di Firenze Dip.to di Scienze delle Produzioni Vegetali, del Suolo e dell'Ambiente Forestale (DiPSA) P.zle Cascine 28 50144 Firenze Italia Ubuntu 10.04 -- GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.18.0) ESS version 5.8 -- R 2.10.1 ______________________________________________ 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.