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 
think this is b/c I have multiple panel functions.  Help!

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]]

