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 graph-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(iris)
    pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species",
          pch = 21, bg = c("red", "green3", "blue")[codes(iris$Species)])

    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,
          cex = 1.5, pch = 24, bg="light blue",
          diag.panel=panel.hist, cex.labels = 2, 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)