# axTicks

##### Compute Axis Tickmark Locations

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.

- Keywords
- dplot

##### 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")`

or`par("yaxp")`

depending on the`side`

argument (`par("xaxp")`

if`side`

is 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]`

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

for`side`

in (1,3) or (2,4) respectively).- log
logical indicating if log coordinates are active; defaults to

`par("xlog")`

or`par("ylog")`

depending on`side`

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

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

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.

##### Value

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

`library(graphics)`

```
# 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)))
# }
```

*Documentation reproduced from package graphics, version 3.6.2, License: Part of R 3.6.2*