Create log-axis values and labels

Share:

Description

Create nice values and labels to write at logartihmic axes

Usage

1
2
3
logVals(from = -7, to = 7, Range, base = 1, big.mark = "'",
  decimal.mark = ".", scientific = FALSE, exponent = Inf,
  expobase1 = FALSE, allbase = 1:9, ...)

Arguments

from

Lower exponent OR vector with data

to

High end

Range

Or give from and to as range

base

Bases to be used, eg. c(1,2,5)

big.mark

Symbol separating thousands, eg. space, comma, dot, etc. see format and prettyNum

decimal.mark

Character separating comma values, see format and prettyNum

scientific

See format

exponent

Starting at which exponent should labs be an expression with exponents? Compare to options("scipen"). This is mainly for logAxis and only for base 1. DEFAULT: Inf

expobase1

Should "n * " be appended before 10^exp if n=1? DEFAULT: FALSE

allbase

Base for $all (for horizontal lines). DEFAULT: 1:9

...

Ignored arguments

Value

A list with

vals

Values for lines and label positions

labs

Formatted values for labels

all

Values for lines

Author(s)

Berry Boessenkool, berry-b@gmx.de, Feb 2014

See Also

log10, logAxis, http://r.789695.n4.nabble.com/expression-exponent-labeling-td4661174.html

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Easiest use: vector with data (logVals automatically finds range):
y <- 10^runif(50, -1, 2)
plot(y, log="y") # not much control over placement and format of labels
plot(y, log="y", yaxt="n")
# now do this better, with custom bases:
lv <- logVals(y, base=c(1,2,5) )
axis(2, lv$vals, lv$labs, las=1)

# Default arguments:
lv <- logVals()
str(lv) # values, formatted labels, all 10^x values for lines
plot(1, ylim=c(1e-3, 1e4), log="y", yaxt="n", yaxs="i")
abline(h=lv$all, col=8 )
box("plot")
axis(2, lv$vals, lv$labs, las=1)
lines(seq(0.5, 1.5, len=50), 10^runif(50, -3, 4), col=2)

# Formatting labels:
logVals(                )$labs
logVals(scient=TRUE     )$labs
logVals(exponent=5      )$labs # expression with exponent, see logAxis
logVals(big.mark=" "    )$labs
logVals(big=".", dec=",")$labs # German style (not recommended)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.