pairs {base}R Documentation

Scatterplot Matrices

Description

A matrix of scatterplots is produced.

Usage

pairs(x, ...)
pairs.default(x, labels = colnames(x), panel = points, ...,
              lower.panel = panel, upper.panel = panel,
              diag.panel = NULL, text.panel = textPanel,
              label.pos = 0.5 + has.diag/3,
              cex.labels = NULL, font.labels = 1,
              row1attop = TRUE)

Arguments

x the coordinates of points given as columns of a matrix.
labels the names of the variables.
panel function(x,y,...) which is used to plot the contents of each panel of the display.
... graphical parameters can be given as arguments to plot.
lower.panel, upper.panel separate panel functions to be used below and above the diagonal respectively.
diag.panel optional function(x, ...) to be applied on the diagonals.
text.panel optional function(x, y, labels, cex, font, ...) to be applied on the diagonals.
label.pos y position of labels in the text panel.
cex.labels, font.labels graphics parameters for the text panel.
row1attop logical. Should the layout be matrix-like with row 1 at the top, or graphi-like with row 1 at the bottom?

Details

The ijth scatterplot contains x[,i] plotted against x[,j]. The ``scatterplot' can be customised by setting panel functions to appear as something completely different. The off-diagonal panel functions are passed the appropriate columns of x as x and y: the diagonal panel function (if any) is passed a single column, and the text.panel function is passed a single (x, y) location and the column name.

The graphical parameters pch and col can be used to specify a vector of plotting symbols and colors to be used in the plots.

The graphical parameter oma will be set by pairs.default unless supplied as an argument.

Author(s)

Enhancements for R 1.0.0 contributed by Dr. Jens Oehlschlaegel-Akiyoshi and R-core members.

Examples

data(USJudgeRatings)
pairs(USJudgeRatings)

## put histograms on the diagonal
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(USJudgeRatings[1:5], panel=panel.smooth,
      diag.panel=panel.hist, cex.labels=1.5, font.labels=2)

## put (absolute) correlations on the upper panels,
## with size proportional to the correlations.
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))
    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)
}
pairs(USJudgeRatings, lower.panel=panel.smooth, upper.panel=panel.cor)

[Package Contents]