pretty {base} | R Documentation |

Compute a sequence of about `n+1`

equally spaced nice values which
cover the range of the values in `x`

.
The values are chosen so that they are 1, 2 or 5 times a power of 10.

pretty(x, n = 5, min.n = n %/% 3, shrink.sml = 0.75, high.u.bias = 1.5, u5.bias = .5 + 1.5*high.u.bias, eps.correct = 0)

`x` |
numeric vector |

`n` |
integer giving the desired number of
intervals. Non-integer values are rounded down. |

`min.n` |
nonnegative integer giving the minimal number of
intervals. If `min.n == 0` , `pretty(.)` may return a
single value. |

`shrink.sml` |
positive numeric
by a which a default scale is shrunk in the case when
`range(x)` is “very small” (usually 0). |

`high.u.bias` |
non-negative numeric, typically > 1.
The interval unit is determined as {1,2,5,10} times `b` , a
power of 10. Larger `high.u.bias` values favor larger units. |

`u5.bias` |
non-negative numeric
multiplier favoring factor 5 over 2. Default and “optimal”:
`u5.bias = .5 + 1.5*high.u.bias` . |

`eps.correct` |
integer code, one of {0,1,2}. If non-0, an
“epsilon correction” is made at the boundaries such that
the result boundaries will be outside `range(x)` ; in the
small case, the correction is only done if `eps.correct >=2` . |

`pretty`

ignores non-finite values in `x`

.

Let `d <- max(x) - min(x)`

*>= 0*.
If `d`

is not (very close) to 0, we let `c <- d/n`

,
otherwise more or less `c <- max(abs(range(x)))*shrink.sml / min.n`

.
Then, the *10 base* `b`

is
*10^(floor(log10(c)))* such
that *b <= c < 10b*.

Now determine the basic *unit* *u* as one of
*{1,2,5,10} b*, depending on *c/b in [1,10)* and the two
“*bias*” coefficients, *h =*`high.u.bias`

and
*f =*`u5.bias`

.

.........

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

`axTicks`

for the computation of pretty axis tick
locations in plots, particularly on the log scale.

pretty(1:15) # 0 2 4 6 8 10 12 14 16 pretty(1:15, h=2)# 0 5 10 15 pretty(1:15, n=4)# 0 5 10 15 pretty(1:15 * 2) # 0 5 10 15 20 25 30 pretty(1:20) # 0 5 10 15 20 pretty(1:20, n=2) # 0 10 20 pretty(1:20, n=10)# 0 2 4 ... 20 for(k in 5:11) { cat("k=",k,": "); print(diff(range(pretty(100 + c(0, pi*10^-k)))))} ##-- more bizarre, when min(x) == max(x): pretty(pi) add.names <- function(v) { names(v) <- paste(v); v} str(lapply(add.names(-10:20), pretty)) str(lapply(add.names(0:20), pretty, min = 0)) sapply( add.names(0:20), pretty, min = 4) pretty(1.234e100) pretty(1001.1001) pretty(1001.1001, shrink = .2) for(k in -7:3) cat("shrink=",formatC(2^k,wid=9),":", formatC(pretty(1001.1001, shrink = 2^k), wid=6),"\n")

[Package *base* version 2.5.0 Index]