Skip to content
Prev 326592 / 398502 Next

Axis scaling for pairs plots

I have a question concerning axis scaling for pairs plots. My data set 
has columns with differing units and I want a pairs plot with scatter+an 
lm line+a correlation confidence ellipse for each lower panel. The 95% 
confidence ellipse (using the ellipse package+a polygon) gives me an 
ellipse that can extend well beyond the axis limits. At times I'll want 
the entire ellipse in the panel with the points range squeezed 
accordingly. The panel.ellipse function I wrote looks like this:

panel.ellipse <- function (x, y, col = par("col"), bg = NA, pch = 
par("pch"),
     cex = 1, ...)
{
     points(x, y, pch = pch, col = col, bg = bg, cex = cex)
     ok <- is.finite(x) & is.finite(y)
     if (any(ok)) {
       xy.lm <- lm(y~x)
       abline(xy.lm,col='lightgrey')
       require(ellipse)
       ell <- ellipse(cor(x,y), level = 0.95, scale = c(sd(x),sd(y)), 
centre = c(mean(x),mean(y)))
       polygon(ell,border='red')
     }
}

with the pairs command:
   pairs(df.c,pch=19,
     lower.panel=panel.ellipse,
     diag.panel=panel.hist,upper.panel=panel.cor)

Is this possible to do?

(R 15.2)

Regards

David S