plot.formula {graphics} | R Documentation

## Formula Notation for Scatterplots

### Description

Specify a scatterplot or add points, lines, or text via a formula.

### Usage

    ## S3 method for class 'formula'
    plot(formula, data = parent.frame(), ..., subset,
                 ylab = varnames[response], ask = dev.interactive())

    ## S3 method for class 'formula'
    points(formula, data = parent.frame(), ..., subset)

    ## S3 method for class 'formula'
    lines(formula, data = parent.frame(), ..., subset)

    ## S3 method for class 'formula'
    text(formula, data = parent.frame(), ..., subset)

### Arguments

`formula` | a `formula`, such as `y ~ x`.
`data` | a data.frame (or list) from which the variables in `formula` should be taken. A matrix is converted to a data frame.
`...` | Arguments to be passed to or from other methods. `horizontal = TRUE` is also accepted.
`subset` | an optional vector specifying a subset of observations to be used in the fitting process.
`ylab` | the y label of the plot(s).
`ask` | logical, see `par`.

### Details

For the `lines`, `points` and `text` methods the formula should be of the form `y ~ x` or `y ~ 1` with a left-hand side and a single term on the right-hand side. The `plot` method accepts other forms discussed later in this section.

Both the terms in the formula and the `...` arguments are evaluated in `data` enclosed in `parent.frame()` if `data` is a list or a data frame. The terms of the formula and those arguments in `...` that are of the same length as `data` are subjected to the subsetting specified in `subset`. A plot against the running index can be specified as `plot(y ~ 1)`.

If the formula in the `plot` method contains more than one term on the right-hand side, a series of plots is produced of the response against each non-response term.

For the `plot` method the formula can be of the form `~ z + y + z`: the variables specified on the right-hand side are collected into a data frame, subsetted if specified, and displayed by `plot.data.frame`.

Missing values are not considered in these methods, and in particular cases with missing values are not removed.

If `y` is an object (i.e., has a `class` attribute) then `plot.formula` looks for a plot method for that class first. Otherwise, the class of `x` will determine the type of the plot. For factors this will be a parallel boxplot, and argument `horizontal = TRUE` can be specified (see `boxplot`).

Note that some arguments will need to be protected from premature evaluation by enclosing them in `quote`: currently this is done automatically for `main`, `sub` and `xlab`. For example, it is needed for the `panel.first` and `panel.last` arguments passed to `plot.default`.

### Value

These functions are invoked for their side effect of drawing on the active graphics device.

### See Also

`plot.default`, `points`, `lines`, `plot.factor`.

### Examples

    op <- par(mfrow = c(2,1))
    plot(Ozone ~ Wind, data = airquality, pch = as.character(Month))
    plot(Ozone ~ Wind, data = airquality, pch = as.character(Month),
         subset = Month != 7)
    par(op)

    ## text.formula() can be very natural:
    wb <- within(warpbreaks, {
        time <- seq_along(breaks); W.T <- wool:tension })
    plot(breaks ~ time, data = wb, type = "b")
    text(breaks ~ time, data = wb, label = W.T, col = 1+as.integer(wool))

[Package graphics version 3.3.2 Index]