plot.formula
Formula Notation for Scatterplots
Specify a scatterplot or add points, lines, or text via a formula.
Usage
"plot"(formula, data = parent.frame(), ..., subset, ylab = varnames[response], ask = dev.interactive())
"points"(formula, data = parent.frame(), ..., subset)
"lines"(formula, data = parent.frame(), ..., subset)
"text"(formula, data = parent.frame(), ..., subset)
Arguments
 formula
 a
formula
, such asy ~ 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 lefthand
side and a single term on the righthand 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 righthand side, a series of plots is produced of the response
against each nonresponse term.
For the plot
method the formula can be of the form
~ z + y + z
: the variables specified on the righthand 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
Examples
library(graphics)
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))