Oce Version of axis.POSIXct

Share:

Description

A specialized variant of axis.POSIXct that produces results with less ambiguity in axis labels.

Usage

1
2
3
4
5
6
oce.axis.POSIXct(side, x, at, tformat, labels = TRUE,
  drawTimeRange = getOption("oceDrawTimeRange"),
  abbreviateTimeRange = FALSE, drawFrequency = FALSE, cex = par("cex"),
  cex.axis = par("cex.axis"), cex.main = par("cex.main"),
  mar = par("mar"), mgp = par("mgp"), main = "",
  debug = getOption("oceDebug"), ...)

Arguments

side

as for axis.POSIXct.

x

as for axis.POSIXct.

at

as for axis.POSIXct.

tformat

as format for axis.POSIXct for now, but may eventually have new features for multiline labels, e.g. day on one line and month on another.

labels

as for axis.POSIXct.

drawTimeRange

boolean, TRUE to draw a time range on the opposite side of the plot.

abbreviateTimeRange

boolean, TRUE to abbreviate the second number in the time range, e.g. dropping the year if it is the same in the first number.

drawFrequency

boolean, TRUE to show the frequency of sampling in the data

cex

size of labels on axes; see par("cex").

cex.axis

see par("cex.axis").

cex.main

see par("cex.main").

mar

value for par(mar) for axis

mgp

value for par(mgp) for axis

main

title of plot

debug

a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.

...

as for axis.POSIXct.

Details

The tick marks are set automatically based on examination of the time range on the axis. The scheme was devised by constructing test cases with a typical plot size and font size, and over a wide range of time scales. In some categories, both small tick marks are interspersed between large ones.

The user may set the format of axis numbers with the tformat argument. If this is not supplied, the format is set based on the time span of the axis:

  • If this time span is less than a minute, the time axis labels are in seconds (fractional seconds, if the interval is less than 2 seconds), with leading zeros on small integers. (Fractional seconds are enabled with a trick: the usual R format "%S" is supplemented with a new format e.g. "%.2S", meaning to use two digits after the decimal.)

  • If the time span exceeds a minute but is less than 1.5 days, the label format is "%H:%M:%S".

  • If the time span exceeds 1.5 days but is less than 1 year, the format is "%b %d" (e.g. Jul 15) and, again, the tick marks are set up for several subcategories.

  • If the time span exceeds a year, the format is "%Y", i.e. the year is displayed with 4 digits.

It should be noted that this scheme differs from the R approach in several ways. First, R writes day names for some time ranges, in a convention that is seldom seen in the literature. Second, R will write nn:mm for both HH:MM and MM:SS, an ambiguity that might confuse readers. Third, the use of both large and small tick marks is not something that R does.

Bear in mind that tformat may be set to alter the number format, but that the tick mark scheme cannot (presently) be controlled.

Value

A vector of times corresponding to axis ticks is returned silently.

Author(s)

Dan Kelley

See Also

This is used mainly by oce.plot.ts.

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.