\HeaderA{axis.POSIXct}{Date and Date-time Plotting Functions}{axis.POSIXct}
\aliasA{axis.Date}{axis.POSIXct}{axis.Date}
\aliasA{plot.Date}{axis.POSIXct}{plot.Date}
\aliasA{plot.POSIXct}{axis.POSIXct}{plot.POSIXct}
\aliasA{plot.POSIXlt}{axis.POSIXct}{plot.POSIXlt}
\keyword{utilities}{axis.POSIXct}
\keyword{chron}{axis.POSIXct}
\begin{Description}\relax
Functions to plot objects of classes \code{"POSIXlt"},
\code{"POSIXct"} and \code{"Date"} representing calendar dates and times.
\end{Description}
\begin{Usage}
\begin{verbatim}
axis.POSIXct(side, x, at, format, labels = TRUE, ...)
axis.Date(side, x, at, format, labels = TRUE, ...)

## S3 method for class 'POSIXct':
plot(x, y, xlab = "", ...)
## S3 method for class 'POSIXlt':
plot(x, y, xlab = "", ...)
## S3 method for class 'Date':
plot(x, y, xlab = "", ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x, at}] A date-time or date object.
\item[\code{y}] numeric values to be plotted against \code{x}.
\item[\code{xlab}] a character string giving the label for the x axis.
\item[\code{side}] See \code{\LinkA{axis}{axis}}.
\item[\code{format}] See \code{\LinkA{strptime}{strptime}}.
\item[\code{labels}] Either a logical value specifying whether
annotations are to be made at the tickmarks, or a vector of character
strings to be placed at the tickpoints.
\item[\code{...}] Further arguments to be passed from or to other methods,
typically graphical parameters or arguments of
\code{\LinkA{plot.default}{plot.default}}.  For the \code{plot} methods, also
\code{format}.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
The functions plot against an x-axis of date-times.
\code{axis.POSIXct} and \code{axis.Date} work quite hard to choose
suitable time units (years, months, days, hours, minutes or seconds)
and a sensible output format, but this can be overridden by supplying
a \code{format} specification.

If \code{at} is supplied it specifies the locations of the ticks
and labels whereas if \code{x} is specified a suitable grid of labels
is chosen. Printing of tick labels can be suppressed by using
\code{labels = FALSE}.
\end{Details}
\begin{Value}
The locations on the axis scale at which tick marks were drawn.
\end{Value}
\begin{SeeAlso}\relax
\LinkA{DateTimeClasses}{DateTimeClasses}, \LinkA{Dates}{Dates} for details of the classes.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
with(beaver1, {
time <- strptime(paste(1990, day, time %/% 100, time %% 100),
                 "%Y %j %H %M")
plot(time, temp, type="l") # axis at 4-hour intervals.
# now label every hour on the time axis
plot(time, temp, type="l", xaxt="n")
r <- as.POSIXct(round(range(time), "hours"))
axis.POSIXct(1, at=seq(r[1], r[2], by="hour"), format="%H")
})

plot(.leap.seconds, 1:23, type="n", yaxt="n",
     xlab="leap seconds", ylab="", bty="n")
rug(.leap.seconds)
## or as dates
lps <- as.Date(.leap.seconds)
plot(lps, 1:23, type = "n", yaxt = "n", xlab = "leap seconds",
     ylab = "", bty = "n")
rug(lps)

## 100 random dates in a 10-week period
random.dates <- as.Date("2001/1/1") + 70*sort(stats::runif(100))
plot(random.dates, 1:100)
# or for a better axis labelling
plot(random.dates, 1:100, xaxt="n")
axis.Date(1, at=seq(as.Date("2001/1/1"), max(random.dates)+6, "weeks"))
axis.Date(1, at=seq(as.Date("2001/1/1"), max(random.dates)+6, "days"),
     labels = FALSE, tcl = -0.2)
\end{ExampleCode}
\end{Examples}

