axTicks {graphics}
Description
Compute pretty tickmark locations, the same way as R does internally. This is only non-trivial when log coordinates are active. By default, gives the at values which axis(side) would use.
Usage
axTicks(side, axp = NULL, usr = NULL, log = NULL, nintLog = NULL)
Arguments
- side
- integer in 1:4, as for
axis. - axp
- numeric vector of length three, defaulting to
par("xaxp")orpar("yaxp")depending on thesideargument (par("xaxp")ifsideis 1 or 3,par("yaxp")if side is 2 or 4). - usr
- numeric vector of length two giving user coordinate limits, defaulting to the relevant portion of
par("usr")(par("usr")[1:2]orpar("usr")[3:4]forsidein (1,3) or (2,4) respectively). - log
- logical indicating if log coordinates are active; defaults to
par("xlog")orpar("ylog")depending onside. - nintLog
- (only used when
logis true): approximate (lower bound for the) number of tick intervals; defaults topar("lab")[j]wherejis 1 or 2 depending onside. Set this toInfif you want the same behavior as in earlier R versions (than 2.14.x).
Details
The axp, usr, and log arguments must be consistent as their default values (the par(..) results) are. If you specify all three (as non-NULL), the graphics environment is not used at all. Note that the meaning of axp differs significantly when log is TRUE; see the documentation on par(xaxp = .).
axTicks() can be used an R interface to the C function CreateAtVector() in ‘..../src/main/plot.c’ which is called by axis(side, *) when no argument at is specified. The delicate case, log = TRUE, now makes use of axisTicks (in package grDevices) unless nintLog = Inf which exists for back compatibility.
Values
numeric vector of coordinate values at which axis tickmarks can be drawn. By default, when only the first argument is specified, these values should be identical to those that axis(side) would use or has used. Note that the values are decreasing when usr is (“reverse axis” case).
See Also
axis, par. pretty uses the same algorithm (but independently of the graphics environment) and has more options. However it is not available for log = TRUE.
axisTicks() (package grDevices).
Examples
plot(1:7, 10*21:27) axTicks(1) axTicks(2) stopifnot(identical(axTicks(1), axTicks(3)), identical(axTicks(2), axTicks(4))) ## Show how axTicks() and axis() correspond : op <- par(mfrow = c(3, 1)) for(x in 9999 * c(1, 2, 8)) { plot(x, 9, log = "x") cat(formatC(par("xaxp"), width = 5),";", T <- axTicks(1),"\n") rug(T, col = adjustcolor("red", 0.5), lwd = 4) } par(op) x <- 9.9*10^(-3:10) plot(x, 1:14, log = "x") axTicks(1) # now length 5, in R <= 2.13.x gave the following axTicks(1, nintLog = Inf) # rather too many ## An example using axTicks() without reference to an existing plot ## (copying R's internal procedures for setting axis ranges etc.), ## You do need to supply _all_ of axp, usr, log, nintLog ## standard logarithmic y axis labels ylims <- c(0.2, 88) get_axp <- function(x) 10^c(ceiling(x[1]), floor(x[2])) ## mimic par("yaxs") == "i" usr.i <- log10(ylims) (aT.i <- axTicks(side = 2, usr = usr.i, axp = c(get_axp(usr.i), n = 3), log = TRUE, nintLog = 5)) ## mimic (default) par("yaxs") == "r" usr.r <- extendrange(r = log10(ylims), f = 0.04) (aT.r <- axTicks(side = 2, usr = usr.r, axp = c(get_axp(usr.r), 3), log = TRUE, nintLog = 5)) ## Prove that we got it right : plot(0:1, ylims, log = "y", yaxs = "i") stopifnot(all.equal(aT.i, axTicks(side = 2))) plot(0:1, ylims, log = "y", yaxs = "r") stopifnot(all.equal(aT.r, axTicks(side = 2)))
Documentation reproduced from R 2.15.3. License: GPL-2.
