pretty10exp {sfsmisc} | R Documentation |
Nice 10 ** k Label Expressions
Description
Produce nice a \times 10^k
expressions to be used
instead of the scientific notation "a E<k>"
.
Usage
pretty10exp(x, drop.1 = FALSE, sub10 = FALSE, digits = 7, digits.fuzz,
lab.type = c("plotmath","latex"),
lab.sep = c("cdot", "times"))
Arguments
x |
numeric vector (e.g. axis tick locations) |
drop.1 |
logical indicating if |
sub10 |
logical, Special cases: |
digits |
number of digits for mantissa ( |
digits.fuzz |
the old deprecated name for |
lab.type |
a string indicating how the result should look like.
By default, ( |
lab.sep |
character separator between mantissa and exponent for LaTeX labels; it will be prepended with a backslash, i.e., ‘"cdot"’ will use ‘"\cdot"’ |
Value
For the default lab.type = "plotmath"
,
an expression of the same length as x
, typically with elements
of the form a %*% 10 ^ k
.
Exceptions are 0
which is kept simple, if drop.1
is
true and a = 1
, 10 ^ k
is used, and if sub10
is not false, a %*% 10 ^ 0
as a
, and a %*% 10 ^ k
as
as the corresponding formatted number a * 10^k
independently of
drop.1
.
Otherwise, a character
vector of the same length as
x
. For lab.type = "latex"
, currently the only
alternative to the default, these strings are LaTeX (math mode)
compatible strings.
Note
If sub10
is set, it will typically be a small number such as 0,
1, or 2. Setting sub10 = TRUE
will be interpreted as
sub10 =1
where resulting exponents k
will either be
negative or k \ge 2
.
Author(s)
Martin Maechler; Ben Bolker contributed lab.type = "latex"
and lab.sep
.
See Also
axTexpr
and eaxis()
which build on
pretty10exp()
, notably the eaxis()
example plots.
The new toLatex.numeric
method which gives very similar
results with option scientific = TRUE
.
Further, axis
, axTicks
.
Examples
pretty10exp(-1:3 * 1000)
pretty10exp(-1:3 * 1000, drop.1 = TRUE)
pretty10exp(c(1,2,5,10,20,50,100,200) * 1e3)
pretty10exp(c(1,2,5,10,20,50,100,200) * 1e3, drop.1 = TRUE)
set.seed(17); lx <- rlnorm(10, m=8, s=6)
pretty10exp(lx, digits = 3)
pretty10exp(lx, digits = 3, sub10 = 2)
pretty10exp(lx, digits = 3, lab.type="latex")
pretty10exp(lx, digits = 3, lab.type="latex", lab.sep="times", sub10=2)
## use regular formatted numbers from 0.03 to 300 :
pretty10exp(3*10^(-3:4), sub10 = c(-2,2))
pretty10exp(3*10^(-3:4), sub10 = c(-2,2), lab.type = "l")
ax <- 10^(-6:0) - 2e-16
pretty10exp(ax, drop.1=TRUE) # nice for plotting
pretty10exp(ax, drop.1=TRUE, sub10=TRUE)
pretty10exp(ax, drop.1=TRUE, sub10=c(-2,2))
## in sfsmisc version <= 1.0-16, no 'digits',
## i.e., implicitly had digits := #{double precision digits} ==
(dig. <- .Machine$double.digits * log10(2)) # 15.95
pretty10exp(ax, drop.1=TRUE, digits= dig.) # ''ugly''