axis.POSIXct {graphics} | R Documentation |
Functions to plot objects of classes "POSIXlt"
,
"POSIXct"
and "Date"
representing calendar dates and times.
axis.POSIXct(side, x, at, format, labels = TRUE, ...) axis.Date(side, x, at, format, labels = TRUE, ...)
x, at |
A date-time or date object. |
side |
See axis . |
format |
See strptime . |
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. |
... |
Further arguments to be passed from or to other methods, typically graphical parameters. |
axis.POSIXct
and 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 format
specification.
If at
is supplied it specifies the locations of the ticks
and labels whereas if x
is specified a suitable grid of labels
is chosen. Printing of tick labels can be suppressed by using
labels = FALSE
.
As from R 2.9.0 the date-times for a "POSIXct"
input are
interpreted in the timezone give by the "tzone"
attribute it
there is one, otherwise the current timezone. (Earlier versions always
used the current timezone.)
These functions are the workhorse for methods for Axis
.
Prior to R 2.12.0 there were also plot
methods for the
data-time classes, but the default method has also handled those for a
long time.
The locations on the axis scale at which tick marks were drawn.
DateTimeClasses, Dates for details of the classes.
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)