axTexpr function

Axis Ticks Expressions in Nice 10 ** k Form

Axis Ticks Expressions in Nice 10 ** k Form

Produce nice a10ka * 10^k expressions for axis labeling instead of the scientific notation "a E<k>".

axTexpr(side, at = axTicks(side, axp = axp, usr = usr, log = log), axp = NULL, usr = NULL, log = NULL, drop.1 = FALSE)

Arguments

  • side: integer in 1:4 specifying the axis side, as for axis.
  • at: numeric vector; with identical default as in axTicks().
  • axp, usr, log: as for axTicks().
  • drop.1: logical indicating if 11 * should be dropped from the resulting expressions.

Details

This is just a utility with the same arguments as axTicks, a wrapper pretty10exp(at, *).

Returns

an expression of the same length as x, with elements of the form a %*% 10 ^ k.

Author(s)

Martin Maechler

See Also

pretty10exp; eaxis, axis, axTicks.

Examples

x <- 1e7*(-10:50) y <- dnorm(x, m=10e7, s=20e7) plot(x,y)## not really nice, the following is better: ## For horizontal y-axis labels, need more space: op <- par(mar= .1+ c(5,5,4,1)) plot(x,y, axes= FALSE, frame=TRUE) aX <- axTicks(1); axis(1, at=aX, label= axTexpr(1, aX)) ## horizontal labels on y-axis: aY <- axTicks(2); axis(2, at=aY, label= axTexpr(2, aY), las=2) par(op) ### -- only 'x' and using log-scale there: plot(x,y, xaxt= "n", log = "x") aX <- axTicks(1); axis(1, at=aX, label= axTexpr(1, aX)) ## Now an "engineer's version" ( more ticks; only label "10 ^ k" ) : axp <- par("xaxp") #-> powers of 10 *inside* 'usr' axp[3] <- 1 # such that only 10^. are labeled aX <- axTicks(1, axp = axp) xu <- 10 ^ par("usr")[1:2] e10 <- c(-1,1) + round(log10(axp[1:2])) ## exponents of 10 *outside* 'usr' v <- c(outer(1:9, e10[1]:e10[2], function(x,E) x * 10 ^ E)) v <- v[xu[1] <= v & v <= xu[2]] plot(x,y, xaxt= "n", log = "x", main = "engineer's version of x - axis") axis(1, at = aX, label = axTexpr(1, aX, drop.1=TRUE)) # 'default' axis(1, at = v, label = FALSE, tcl = 2/3 * par("tcl"))
  • Maintainer: Martin Maechler
  • License: GPL (>= 2)
  • Last published: 2024-11-05