[R] How to colorize the panel backgrounds of pairs()?

ilai keren at math.montana.edu
Fri Mar 2 05:23:38 CET 2012


par('bg') is not what you are looking for - it will set the bg of the
whole graphic device, not panels. I think you want:
count <- 0
mypanel <- function(x, y, ...){
   count <<- count+1
   ll<- par('usr')
   if(count %in% c(1,4,9,12)) bg<- "#FDFF65"
   else bg<- 'transparent'
   rect(ll[1],ll[3],ll[2],ll[4],col=bg)
   points(x, y, cex=0.5)
}

Cheers

On Thu, Mar 1, 2012 at 4:49 PM, Marius Hofert
<marius.hofert at math.ethz.ch> wrote:
> Dear expeRts,
>
> I would like to colorize the backgrounds of a pairs plot according to the respective panel number. Here is what I tried (without success):
>
> count <- 0
> mypanel <- function(x, y, ...){
>    count <<- count+1
>    bg. <- if(count %in% c(1,4,9,12)) "#FDFF65" else NA
>    points(x, y, cex=0.5, bg=bg)
> }
>
> U <- matrix(runif(4*500), ncol=4)
> pairs(U, panel=mypanel)
>
> I also tried to set par(bg=bg.) before the call to points(), but that didn't work either. The only thing I found is that "bg=" can be used to fill certain plot symbols, but I would like to colorize the background of each panel, not the drawn circles.
>
> Cheers,
>
> Marius
>
> ______________________________________________
> 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.



More information about the R-help mailing list