Compute pretty tickmark locations, the same way as R does internally.
This is only nontrivial when log coordinates are active.
By default, gives the at
values which
axis(side)
would use.
1 
side 
integer in 1:4, as for 
axp 
numeric vector of length three, defaulting to

usr 
numeric vector of length two giving user coordinate
limits, defaulting to the relevant portion of

log 
logical indicating if log coordinates are active; defaults
to 
nintLog 
(only used when 
The axp
, usr
, and log
arguments must be consistent
as their default values (the par(..)
results) are. If you
specify all three (as nonNULL), 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.
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).
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).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  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)))

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.