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.

`axTicks(side, axp = NULL, usr = NULL, log = NULL, nintLog = NULL)`

side

integer in 1:4, as for `axis`

.

axp

usr

numeric vector of length two giving user coordinate
limits, defaulting to the relevant portion of
`par("usr")`

(`par("usr")[1:2]`

or
`par("usr")[3:4]`

for `side`

in (1,3) or (2,4)
respectively).

log

nintLog

(only used when `log`

is true): approximate (lower
bound for the) number of tick intervals; defaults to
`par("lab")[j]`

where `j`

is 1 or 2 depending on
`side`

. Set this to `Inf`

if you want the same behavior
as in earlier R versions (than 2.14.x).

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).

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()`

may be seen as an R implementation of the C function
`CreateAtVector()`

in `..../src/main/plot.c`

which is called by `axis(side, *)`

when no argument
`at`

is specified or directly by `axisTicks()`

(in package
grDevices).

The delicate case, `log = TRUE`

, now makes use of
`axisTicks`

unless `nintLog = Inf`

which exists for back
compatibility.

`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).

# NOT RUN { 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))) # }