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`

.