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.