pairs {base} | R Documentation |
A matrix of scatterplots is produced.
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)
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? |
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.
Enhancements for R 1.0.0 contributed by Dr. Jens Oehlschlaegel-Akiyoshi and R-core members.
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)