Hi all,
I would like to add to each panel of a bwplot a coloured central band,
centered on the mean of the values, being its width +- 2% of the mean
itself.
I know how to add lines, i.e. something like
bwplot(X ~ Y|FACTOR
data=my.df,
panel= function(x, y){
panel.bwplot(x, y)
panel.abline(v = mean(x, na.rm = T) - mean(x, na.rm = T) * 0.02
panel.abline(v = mean(x, na.rm = T) + mean(x, na.rm = T) * 0.02
})
but I cannot figure out how to shade the region included between the two
lines.
Is it possible, or I'm pretending too much?
Thanks to all.
Ottorino-Luca Pantani, Universit?? di Firenze
Dip. Scienza del Suolo e Nutrizione della Pianta
I: a coloured band within each panel of a lattice bwplot
2 messages · 8rino-Luca Pantani, Deepayan Sarkar
On Friday 05 November 2004 05:05, 8rino-Luca Pantani wrote:
Hi all,
I would like to add to each panel of a bwplot a coloured central
band, centered on the mean of the values, being its width +- 2% of
the mean itself.
I know how to add lines, i.e. something like
bwplot(X ~ Y|FACTOR
data=my.df,
panel= function(x, y){
panel.bwplot(x, y)
panel.abline(v = mean(x, na.rm = T) - mean(x, na.rm = T) *
0.02 panel.abline(v = mean(x, na.rm = T) + mean(x, na.rm = T) * 0.02
})
but I cannot figure out how to shade the region included between the
two lines.
Generally speaking, you want to draw a polygon . There is no lattice wrapper for the 'grid.polygon' function, so you will have to use it directly. Check out
library(grid) help(grid.polygon)
For this simpler case though, 'grid.rect' should be sufficient, e.g.
panel= function(x, y){
m <- mean(x, na.rm = T)
grid.rect(x = unit(m, "native"),
w = unit(m * 0.04, "native"),
gp = gpar(fill = "lightgrey", col = "transparent"))
panel.bwplot(x, y)
}
Make sure to do a 'library(grid)' before this.
Deepayan