# plot.default

##### The Default Scatterplot Function

Draw a scatter plot with decorations such as axes and titles in the active graphics window.

- Keywords
- hplot

##### Usage

```
## S3 method for class 'default':
plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL,
log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
ann = par("ann"), axes = TRUE, frame.plot = axes,
panel.first = NULL, panel.last = NULL, asp = NA, ...)
```

##### Arguments

- x, y
- the
`x`

and`y`

arguments provide the x and y coordinates for the plot. Any reasonable way of defining the coordinates is acceptable. See the function`xy.coords`

for details. If supplied separately, they must be of the same length. - type
- 1-character string giving the type of plot desired. The
following values are possible, for details, see
`plot`

:`"p"`

for points,`"l"`

for lines,`"b"`

for both points and lines,`"c"`

for empty points joined by lines,`"o"`

for overplotted points and lines,`"s"`

and`"S"`

for stair steps and`"h"`

for histogram-like vertical lines. Finally,`"n"`

does not produce any points or lines. - xlim
- the x limits (x1, x2) of the plot. Note that
`x1 > x2`

is allowed and leads to areversed axis .The default value,

`NULL`

, indicates that the range of the finite values to be plotted should be used. - ylim
- the y limits of the plot.
- log
- a character string which contains
`"x"`

if the x axis is to be logarithmic,`"y"`

if the y axis is to be logarithmic and`"xy"`

or`"yx"`

if both axes are to be logarithmic. - main
- a main title for the plot, see also
`title`

. - sub
- a sub title for the plot.
- xlab
- a label for the x axis, defaults to a description of
`x`

. - ylab
- a label for the y axis, defaults to a description of
`y`

. - ann
- a logical value indicating whether the default annotation (title and x and y axis labels) should appear on the plot.
- axes
- a logical value indicating whether both axes should be drawn on
the plot. Use graphical parameter
`"xaxt"`

or`"yaxt"`

to suppress just one of the axes. - frame.plot
- a logical indicating whether a box should be drawn around the plot.
- panel.first
- an
expression to be evaluated after the plot axes are set up but before any plotting takes place. This can be useful for drawing background grids or scatterplot smooths. Note that this works by lazy evaluation: passing this argument from other`plot`

methods may well not work since it may be evaluated too early. - panel.last
- an expression to be evaluated after plotting has
taken place but before the axes, title and box are added. See the
comments about
`panel.first`

. - asp
- the $y/x$ aspect ratio, see
`plot.window`

. - ...
- other graphical parameters (see
`par`

and sectionDetails below).

##### Details

Commonly used graphical parameters are: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

##### Note

The presence of `panel.first`

and `panel.last`

is a
historical anomaly: default plots do not have `pairs`

plots. For more control, use lower-level
plotting functions: `plot.default`

calls in turn some of
`plot.new`

, `plot.window`

,
`plot.xy`

, `axis`

, `box`

and
`title`

, and plots can be built up by calling these
individually, or by calling `plot(type = "n")`

and adding further
elements.

##### References

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

Cleveland, W. S. (1985)
*The Elements of Graphing Data.*
Monterey, CA: Wadsworth.

Murrell, P. (2005) *R Graphics*. Chapman & Hall/CRC Press.

##### See Also

`plot`

, `plot.window`

, `xy.coords`

.
For thousands of points, consider using `smoothScatter`

instead.

##### Examples

`library(graphics)`

```
Speed <- cars$speed
Distance <- cars$dist
plot(Speed, Distance, panel.first = grid(8, 8),
pch = 0, cex = 1.2, col = "blue")
plot(Speed, Distance,
panel.first = lines(stats::lowess(Speed, Distance), lty = "dashed"),
pch = 0, cex = 1.2, col = "blue")
## Show the different plot types
x <- 0:12
y <- sin(pi/5 * x)
op <- par(mfrow = c(3,3), mar = .1+ c(2,2,3,1))
for (tp in c("p","l","b", "c","o","h", "s","S","n")) {
plot(y ~ x, type = tp, main = paste0("plot(*, type = "", tp, "")"))
if(tp == "S") {
lines(x, y, type = "s", col = "red", lty = 2)
mtext("lines(*, type = "s", ...)", col = "red", cex = 0.8)
}
}
par(op)
##--- Log-Log Plot with custom axes
lx <- seq(1, 5, length = 41)
yl <- expression(e^{-frac(1,2) * {log[10](x)}^2})
y <- exp(-.5*lx^2)
op <- par(mfrow = c(2,1), mar = par("mar")+c(0,1,0,0))
plot(10^lx, y, log = "xy", type = "l", col = "purple",
main = "Log-Log plot", ylab = yl, xlab = "x")
plot(10^lx, y, log = "xy", type = "o", pch = ".", col = "forestgreen",
main = "Log-Log plot with custom axes", ylab = yl, xlab = "x",
axes = FALSE, frame.plot = TRUE)
my.at <- 10^(1:5)
axis(1, at = my.at, labels = formatC(my.at, format = "fg"))
at.y <- 10^(-5:-1)
axis(2, at = at.y, labels = formatC(at.y, format = "fg"), col.axis = "red")
par(op)
```

*Documentation reproduced from package graphics, version 3.3, License: Part of R 3.3*