
Last chance! 50% off unlimited learning
Sale ends in
Labels date axes at sensible intervals in the time domain of weeks to decades.
timeAxis(side = 1, timeAxis = NA, origin = "1970-01-01",
startyear = NULL, stopyear = NULL, n = 5, npm = NULL, npy = NA,
format = "%d.%m.\n%Y", yformat = "%Y", labels = format.Date(d,
format), ym = FALSE, mcex = 0.6, mmgp = c(3, 0, 0), midyear = FALSE,
midmonth = FALSE, midargs = NULL, mgp = c(3, 1.5, 0), cex.axis = 1,
tick = TRUE, tcl = par("tcl"), las = 1, ...)
Which axis
are to be labeled? (can be several). DEFAULT: 1
Logical indicating whether the axis is POSIXct
, not date.
DEFAULT: NA, meaning axis value >1e5
Origin foras.Date
and as.POSIXct
. DEFAULT: "1970-01-01"
Integer. starting year. DEFAULT: NULL = internally computed from par("usr")
Ditto for ending year. DEFAULT: NULL
Approximate number of labels that should be printed (as in pretty
). DEFAULT: 5
Number of labels per month, overrides n. DEFAULT: NULL = internally computed.
Number of labels per year, overrides npm and n. DEFAULT: NA
Format of date, see details in strptime
. DEFAULT: "%d.%m.\n%Y"
Format of year if ym=TRUE
.
Use yformat=" "
(with space) to suppress year labeling.
DEFAULT: "%Y"
labels. DEFAULT: format.Date(d, format)
Label months with first letter at the center of the month and year at center below.
Sets midyear and midmonth to TRUE. Uses labels
and format
for the years, but ignores them for the months. DEFAULT: FALSE
cex.axis
for month labels if ym=TRUE. DEFAULT: 0.6
mgp
for month labels if ym=TRUE. DEFAULT: 3,0,0
Place labels in the middle of the year? if TRUE, format default is "%Y". DEFAULT: FALSE
Place labels in the middle of the month? if TRUE, format default is "%m\n%Y". DEFAULT: FALSE
List of arguments passed to axis
for the year-start lines without labels. DEFAULT: NULL
MarGinPlacement, see par
. The second value is for label distance to axis. DEFAULT: c(3,1.5,0)
Character EXpansion (letter size). DEFAULT: 1
Draw tick lines? DEFAULT: TRUE
Tick length (negative to go below axis) in text line height units like mgp[2] Changed to -2.5 for year borders if ym=TRUE. DEFAULT: par("tcl")
LabelAxisStyle for orientation of labels. DEFAULT: 1 (upright)
Further arguments passed to axis
, like lwd, col.ticks, hadj, lty
, ...
The dates that were labeled
monthLabs
for the numbercrunching itself, axis.Date
with defaults that are less nice.
# NOT RUN {
set.seed(007) # for reproducibility
Date1 <- as.Date("2013-09-25")+sort(sample(0:150, 30))
plot(Date1, cumsum(rnorm(30)), type="l", xaxt="n", ann=FALSE)
timeAxis(side=1)
timeAxis(1, npm=2, cex.axis=0.5, col.axis="red") # fix number of labels per month
DateYM <- as.Date("2013-04-25")+0:500
plot(DateYM, cumsum(rnorm(501)), type="l", xaxt="n", ann=FALSE)
monthAxis() # see more examples there - it largely replaces timeAxis!!!
plot(Date1, cumsum(rnorm(30)), type="l", xaxt="n", ann=FALSE)
timeAxis(labels=FALSE, col.ticks=2)
timeAxis(1, format=" ") # equivalent to axis(labels=FALSE)
timeAxis(1)
d <- timeAxis(1, labels=letters[1:24], mgp=c(3,2.5,0))
d # d covers the full year, thus is longer than n=5
Date2 <- as.Date("2011-07-13")+sort(sample(0:1400, 50))
plot(Date2, cumsum(rnorm(50)), type="l", xaxt="n", ann=FALSE)
timeAxis(npy=12, format=" ") # fix number of labels per year
timeAxis(tcl=-0.8, lwd.ticks=2, format="%Y/%m", mgp=c(3,1,0))
timeAxis(format="", mgp=c(3,2,0)) # International Date format YYYY-mm-dd
plot(Date2, cumsum(rnorm(50)), type="l", xaxt="n", ann=FALSE)
timeAxis(midyear=TRUE)
abline(v=monthLabs(npm=1), col=8)
Date3 <- as.Date("2011-07-13")+sort(sample(0:1200, 50))
plot(Date3, cumsum(rnorm(50)), type="l", xaxt="n", ann=FALSE)
timeAxis(1, n=4, font=2)
timeAxis(1, col.axis=3) # too many labels with default n=5
monthAxis(side=3) # again: use monthAxis, it is usually nicer!
# mid-year labels:
plot(Date3, cumsum(rnorm(50)), type="l", xaxt="n", ann=FALSE)
timeAxis(midyear=TRUE, midargs=list(tcl=-1.2))
# mid-month labels:
plot(Date1, cumsum(rnorm(30)), type="l", xaxt="n", ann=FALSE)
timeAxis(midmonth=TRUE)
# Time axis instead of date axis:
plot(as.POSIXct(Sys.time()+c(0,10)*24*3600), 1:2, xaxt="n")
timeAxis(n=3)
timeAxis()
# }
Run the code above in your browser using DataLab