[R] "pairs" with same xlim and ylim scale

Dejian Zhao dejian.zhao at gmail.com
Sat Sep 4 04:58:33 CEST 2010


Well done!  I was totally misled and trapped by the error message. 
Acturally the absence of "1.00" in the upper panel is an implicit 
indication that error occurred there.

On 2010-9-3 13:02, Shi, Tao wrote:
> Hi Dejian,
>
> Thanks for the reply!
>
> I finally found the problem.  It is actually in the "panel.cor" function.
> Adding "..." in the function and "text" call fixed everything.
>
>
> Best,
>
> ...Tao
>
>
>
>
> ----- Original Message ----
>    
>> From: Dejian Zhao<dejian.zhao at gmail.com>
>> To: r-help at r-project.org
>> Sent: Thu, September 2, 2010 7:57:55 PM
>> Subject: Re: [R] "pairs" with same xlim and ylim scale
>>
>> When "pairs" draws plots, "lower.panel" invokes "f.xy". Maybe there is
>> something in "f.xy" incompatible with "pairs". You can read the code of
>> "pairs" to see what happens.
>>
>> "pairs" has two methods, as you can see  in the help message (?pairs).
>> According to your code, pairs is supposed to  invoke "Default S3 method".
>>   >  methods(pairs)
>> [1] pairs.default   pairs.formula*
>>      Non-visible functions are  asterisked
>> Therefore, you should check the code of the function  "pairs.default" to
>> see how error occurs. Just type "pairs.default" at the R  command prompt
>> and enter, you can get the source code of  "pairs.default".
>>
>>
>>
>> On 2010-9-2 15:15, Shi, Tao wrote:
>>      
>>> Hi  Dejian,
>>>
>>> You're right on this!  Do you know how to pass  those two argument into
>>> lower.panel?  Thanks!
>>>
>>>   ...Tao
>>>
>>>
>>> ________________________________
>>> From:  Dejian Zhao<zhaodj at ioz.ac.cn>
>>> To:r-help at r-project.org
>>> Sent: Tue,  August 31, 2010 6:10:16 PM
>>> Subject: Re: [R] "pairs" with same xlim and  ylim scale
>>>
>>> I think you have successfully passed the "xlim" and  "ylim" into the
>>> function pairs1. Compare the two graphs produced by the  codes you
>>> provided, you can find the xlim and ylim in the second graph  have been
>>> reset to the assigned value. It seems that the program halted  in
>>> producing the second plot after adding xlim and ylim. According to  the
>>> error message, the two added parameters were not used in  lower.panel, or
>>> the customized function f.xy.
>>>
>>> On  2010-9-1 2:26, Shi, Tao wrote:
>>>
>>>        
>>>> Hi  list,
>>>>
>>>> I have a function which basically is a wrapper of  pairs with some useful
>>>>          
>> panel
>>      
>>>> functions.  However, I'm having  trouble to pass the "xlim" and "ylim" into
>>>>          
>> the
>>      
>>>> function so the x and  y axes are in the same scale and 45 degree lines are
>>>> exactly  diagonal.   I've looked at some old posts, they didn't help much.
>>>>          
>> I
>>      
>>>>
>>>>          
>>> [[elided Yahoo spam]]
>>>
>>>        
>>>> Thanks!
>>>>
>>>>   ...Tao
>>>>
>>>>
>>>> pairs1<- function(x, ...)  {
>>>>        f.xy<- function(x, y, ...)  {
>>>>                points(x, y,  ...)
>>>>                abline(0, 1,  col = 2)
>>>>        }
>>>>
>>>>         panel.cor<- function(x, y, digits=2, prefix="", cex.cor)  {
>>>>             usr<- par("usr");  on.exit(par(usr))
>>>>             par(usr =  c(0, 1, 0, 1))
>>>>             r<-  abs(cor(x, y, method="p", use="pairwise.complete.obs"))
>>>>              txt<- format(c(r, 0.123456789),  digits=digits)[1]
>>>>             txt<-  paste(prefix, txt, sep="")
>>>>              if(missing(cex.cor)) cex<- 0.8/strwidth(txt)
>>>>              text(0.5, 0.5, txt, cex = cex * r)
>>>>          }
>>>>
>>>>          panel.hist<- function(x, ...) {
>>>>              usr<- par("usr"); on.exit(par(usr))
>>>>              par(usr = c(usr[1:2], 0, 1.5) )
>>>>              h<- hist(x, plot = FALSE)
>>>>              breaks<- h$breaks; nB<-  length(breaks)
>>>>             y<-  h$counts; y<- y/max(y)
>>>>              rect(breaks[-nB], 0, breaks[-1], y, col="cyan", ...)
>>>>          }
>>>>
>>>>        pairs(x,  lower.panel=f.xy, upper.panel=panel.cor,
>>>>          
>> diag.panel=panel.hist,
>>      
>>>>   ...)
>>>> }
>>>>
>>>>
>>>>
>>>>          
>>>>> x<- rnorm(100, sd=0.2)
>>>>> x<- cbind(x=x-0.1,  y=x+0.1)
>>>>> pairs1(x)
>>>>> pairs1(x, xlim=c(-1,1),  ylim=c(-1,1))
>>>>>
>>>>>
>>>>>            
>>>> Error in lower.panel(...) :
>>>>      unused  argument(s) (xlim = c(-1, 1), ylim = c(-1,  1))
>>>>
>>>>
>>>>
>>>>        [[alternative HTML version deleted]]
>>>>
>>>>   ______________________________________________
>>>> R-help at r-project.org  mailing  list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>   PLEASE do read the posting
>>>>          
>> guidehttp://www.R-project.org/posting-guide.html
>>      
>>>> and provide  commented, minimal, self-contained, reproducible  code.
>>>>
>>>>
>>>>          
>>>   ______________________________________________
>>> R-help at r-project.org  mailing  list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE  do read the posting guidehttp://www.R-project.org/posting-guide.html
>>> and  provide commented, minimal, self-contained, reproducible code.
>>>
>>>   ______________________________________________
>>> R-help at r-project.org  mailing  list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE  do read the posting guidehttp://www.R-project.org/posting-guide.html
>>> and  provide commented, minimal, self-contained, reproducible  code.
>>>
>>>        
>> ______________________________________________
>> 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