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

Marius Hofert marius.hofert at math.ethz.ch
Fri Mar 2 09:10:45 CET 2012


Dear Ilai,

I tried to also adjust the diagonal panels. However, the variable names are not
positioned correctly anymore. Do you know a solution?

Cheers,

Marius

count <- 0
mypanel <- function(x, y, ...){
   count <<- count+1
   bg <- if(count %in% c(1,4,9,12)) "#FDFF65" else "transparent"
   ll <- par("usr")
   rect(ll[1], ll[3], ll[2], ll[4], col=bg)
   points(x, y, cex=0.5)
}

mydiag.panel <- function(x, ...){
   ll <- par("usr")
   rect(ll[1], ll[3], ll[2], ll[4], col="#FDFF65")
}

U <- matrix(runif(4*500), ncol=4)
pairs(U, panel=mypanel, diag.panel=mydiag.panel)


Marius Hofert <marius.hofert at math.ethz.ch> writes:

> Indeed, precisely what I was looking for. Many thanks, Ilai.
>
> ilai <keren at math.montana.edu> writes:
>
>> 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