\HeaderA{plot.ts}{Plotting Time-Series Objects}{plot.ts}
\aliasA{lines.ts}{plot.ts}{lines.ts}
\keyword{hplot}{plot.ts}
\keyword{ts}{plot.ts}
\begin{Description}\relax
Plotting method for objects inheriting from class \code{"ts"}.
\end{Description}
\begin{Usage}
\begin{verbatim}
## S3 method for class 'ts':
plot(x, y = NULL, plot.type = c("multiple", "single"),
        xy.labels, xy.lines, panel = lines, nc, yax.flip = FALSE,
        mar.multi = c(0, 5.1, 0, if(yax.flip) 5.1 else 2.1),
        oma.multi = c(6, 0, 5, 0), axes = TRUE, ...)

## S3 method for class 'ts':
lines(x, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x, y}] time series objects, usually inheriting from class \code{"ts"}.
\item[\code{plot.type}] for multivariate time series, should the series by
plotted separately (with a common time axis) or on a single plot?
\item[\code{xy.labels}] logical, indicating if \code{\LinkA{text}{text}()} labels
should be used for an x-y plot, \emph{or} character, supplying a
vector of labels to be used.  The default is to label for up to 150
points, and not for more.
\item[\code{xy.lines}] logical, indicating if \code{\LinkA{lines}{lines}}
should be drawn for an x-y plot.  Defaults to the value of
\code{xy.labels} if that is logical, otherwise to \code{TRUE}.
\item[\code{panel}] a \code{function(x, col, bg, pch, type, ...)} which gives the
action to be carried out in each panel of the display for
\code{plot.type="multiple"}.  The default is \code{lines}.
\item[\code{nc}] the number of columns to use when \code{type="multiple"}.
Defaults to 1 for up to 4 series, otherwise to 2.
\item[\code{yax.flip}] logical indicating if the y-axis (ticks and numbering)
should flip from side 2 (left) to 4 (right) from series to series
when \code{type="multiple"}.
\item[\code{mar.multi, oma.multi}] the (default) \code{\LinkA{par}{par}} settings
for \code{plot.type="multiple"}.  Modify with care!
\item[\code{axes}] logical indicating if x- and y- axes should be drawn.
\item[\code{...}] additional graphical arguments, see \code{\LinkA{plot}{plot}},
\code{\LinkA{plot.default}{plot.default}} and \code{\LinkA{par}{par}}.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
If \code{y} is missing, this function creates a time series
plot, for multivariate series of one of two kinds depending on
\code{plot.type}.

If \code{y} is present, both \code{x} and \code{y} must be univariate,
and a scatter plot \code{y \textasciitilde{} x} will be drawn, enhanced by
using \code{\LinkA{text}{text}} if \code{xy.labels} is
\code{\LinkA{TRUE}{TRUE}} or \code{character}, and \code{\LinkA{lines}{lines}} if
\code{xy.lines} is \code{TRUE}.
\end{Details}
\begin{SeeAlso}\relax
\code{\LinkA{ts}{ts}} for basic time series construction and access
functionality.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
require(graphics)

## Multivariate
z <- ts(matrix(rt(200 * 8, df = 3), 200, 8),
        start = c(1961, 1), frequency = 12)
plot(z, yax.flip = TRUE)
plot(z, axes = FALSE, ann = FALSE, frame.plot = TRUE,
     mar.multi = c(0,0,0,0), oma.multi = c(1,1,5,1))
title("plot(ts(..), axes=FALSE, ann=FALSE, frame.plot=TRUE, mar..., oma...)")

z <- window(z[,1:3], end = c(1969,12))
plot(z, type = "b")    # multiple
plot(z, plot.type="single", lty=1:3, col=4:2)

## A phase plot:
plot(nhtemp, c(nhtemp[-1], NA), cex = .8, col="blue",
     main = "Lag plot of New Haven temperatures")
## a clearer way to do this would be
## Not run: 
plot(nhtemp, lag(nhtemp, 1), cex = .8, col="blue",
     main = "Lag plot of New Haven temperatures")
## End(Not run)

## xy.lines and xy.labels are FALSE for large series:
plot(lag(sunspots, 1), sunspots, pch = ".")

SMI <- EuStockMarkets[, "SMI"]
plot(lag(SMI,  1), SMI, pch = ".")
plot(lag(SMI, 20), SMI, pch = ".", log = "xy",
     main = "4 weeks lagged SMI stocks -- log scale", xy.lines= TRUE)
\end{ExampleCode}
\end{Examples}

