[R] I: a coloured band within each panel of a lattice bwplot

Deepayan Sarkar deepayan at stat.wisc.edu
Fri Nov 5 18:07:49 CET 2004


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




More information about the R-help mailing list