blob: 2082f2f2e5a3337e97714c45a593616ddd7a53e5 [file] [log] [blame]
% File src/library/graphics/man/axis.POSIXct.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2014 R Core Team
% Distributed under GPL 2 or later
\name{axis.POSIXct}
\alias{axis.POSIXct}
\alias{axis.Date}
\title{Date and Date-time Plotting Functions}
\description{
Functions to plot objects of classes \code{"POSIXlt"},
\code{"POSIXct"} and \code{"Date"} representing calendar dates and times.
}
\usage{
axis.POSIXct(side, x, at, format, labels = TRUE, \dots)
axis.Date(side, x, at, format, labels = TRUE, \dots)
}
\arguments{
\item{x, at}{A date-time or date object.}
\item{side}{See \code{\link{axis}}.}
\item{format}{See \code{\link{strptime}}.}
\item{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{\dots}{Further arguments to be passed from or to other methods,
typically \link{graphical parameters}.}
}
\details{
\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}.
The date-times for a \code{"POSIXct"} input are interpreted in the
time zone give by the \code{"tzone"} attribute if there is one,
otherwise the current time zone.
The way the date-times are rendered (especially month names) is
controlled by the locale setting of category \code{"LC_TIME"} (see
\code{\link{Sys.setlocale}}).
}
\value{
The locations on the axis scale at which tick marks were drawn.
}
\seealso{
\link{DateTimeClasses}, \link{Dates} for details of the classes.
\code{\link{Axis}}.
}
\examples{
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, seq_along(.leap.seconds), type = "n", yaxt = "n",
xlab = "leap seconds", ylab = "", bty = "n")
rug(.leap.seconds)
## or as dates
lps <- as.Date(.leap.seconds)
plot(lps, seq_along(.leap.seconds),
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)
}
\keyword{utilities}
\keyword{chron}