pairs                package:graphics                R Documentation

_S_c_a_t_t_e_r_p_l_o_t _M_a_t_r_i_c_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     A matrix of scatterplots is produced.

_U_s_a_g_e:

     pairs(x, ...)

     ## S3 method for class 'formula':
     pairs(formula, data = NULL, ..., subset)

     ## Default S3 method:
     pairs(x, labels, 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, gap = 1)

_A_r_g_u_m_e_n_t_s:

       x: the coordinates of points given as columns of a matrix.

 formula: a formula, such as '~ x + y + z'.  Each term will give a
          separate variable in the pairs plot, so terms should be
          numeric vectors.  (A response will be interpreted as another
          variable, but not treated specially, so it is confusing to
          use one.)

    data: a data.frame (or list) from which the variables in 'formula'
          should be taken.

  subset: an optional vector specifying a subset of observations to be
          used for plotting.

  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?

     gap: Distance between subplots, in margin lines.

_D_e_t_a_i_l_s:

     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.

     A panel function should not attempt to start a new plot, but just
     plot within a given coordinate system: thus 'plot' and 'boxplot'
     are not panel functions.

     For the default method, missing values are passed to the panel
     functions and will often be ignored within a panel.  However, for
     the formula method and the default value of 'na.action', all cases
     which contain a missing values for any of the variables are
     omitted completely (including when the scales are selected).  [The
     behaviour of the formula method will be changed in R 2.0.0.]

_A_u_t_h_o_r(_s):

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

_R_e_f_e_r_e_n_c_e_s:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

_E_x_a_m_p_l_e_s:

     data(iris)
     pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species",
           pch = 21, bg = c("red", "green3", "blue")[unclass(iris$Species)])

     ## formula method
     data(swiss)
     pairs(~ Fertility + Education + Catholic, data = swiss,
           subset = Education < 20, main = "Swiss data, Education < 20")

     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)

