Learn R Programming

berryFunctions (version 1.22.5)

linLogHist: lin-log transition histogram

Description

Draw histograms that gradually transform from a linear to a logarithmic axis (animation)

Usage

linLogHist(
  x,
  steps = 100,
  breaks = 20,
  col = "blue",
  las = 1,
  xlab = deparse(substitute(x)),
  xlim = range(x, finite = TRUE),
  box = TRUE,
  parexpr,
  endexpr,
  sleep = 0,
  axisargs = NULL,
  axisargs2 = NULL,
  firstplot = TRUE,
  lastplot = TRUE,
  write_t = TRUE,
  values_t = NULL,
  ...
)

Value

Returned invisibly: transformation values used. Plotted: steps number of images.

Arguments

x

x values to be plotted in animation

steps

Number of steps in transition. DEFAULT: 100

breaks

hist breaks. DEFAULT: 20

col

hist color. DEFAULT: "blue"

las

par LabelAxisStyle (numbers upright). DEFAULT: 1

xlab

Label for the x axis. DEFAULT: deparse(substitute(x))

xlim

xlim range in non-log units. DEFAULT: range(x, finite=TRUE)

box

Draw box at the end to overplot ablines crossing the box? DEFAULT: TRUE

parexpr

Characterized Expression to set par, eg. parexpr='par(mar=c(2,0.5,1.5,0.5), mpg=c(1.8,1,0))'

endexpr

Characterized Expression executed at the end of the plot, eg. endexpr='mtext("Probability Density", line=-1, adj=0.03, outer=T)'

sleep

Pause time between frames, in seconds, passed to Sys.sleep. DEFAULT: 0

axisargs

List of arguments passed to logVals, like base. DEFAULT: NULL

axisargs2

List of arguments passed to logAxis in the final plot. DEFAULT: NULL

firstplot

plot on linear scale first? DEFAULT: TRUE

lastplot

plot on logarithmic scale at the end? DEFAULT: TRUE

write_t

write transformation value in lower right corner? DEFAULT: TRUE

values_t

Supply vector with values for transformation (1/t). Overrides steps. If you have a better algorithm than I do, please let me know! DEFAULT: NULL

...

further arguments passed to hist, like freq, main, xlim, ylab. Excluded: x, xaxt, possibly add

Author

Berry Boessenkool, berry-b@gmx.de, April 2015

See Also

linLogTrans

Examples

Run this code

x <- rlnorm(700, m=3)
hist(x, col=4)
hist(log10(x), xaxt="n"); logAxis(1); hist(log10(x), col=4, add=TRUE)

op <- par()
linLogHist(x, steps=8, sleep=0.01) # 0.05 might be smoother

linLogHist(x, xlab="ddd", breaks=30, steps=3, write_t=FALSE, yaxt="n", freq=FALSE,
   main="", parexpr='par(mar=c(2,0.5,1.5,0.5), mgp=c(1.8,1,0))',
   endexpr='mtext("Probability Density", line=-1.2, adj=0.03, outer=T)')
par(op)

if (FALSE) {
## Rcmd check --as-cran doesn't like to open external devices such as pdf,
## so this example is excluded from running in the checks.
pdf("LinLogTransitionAnimation.pdf")
linLogHist(x, main="Example Transition", steps=20, freq=FALSE)
dev.off()

# if you have FFmpeg installed, you can use the animation package like this:
library2(animation)
saveVideo(linLogHist(x, steps=50), video.name="linlog_anim.mp4", interval=0.08,
ffmpeg="C:/ffmpeg-20150424-git-cd69c0e-win64-static/bin/ffmpeg.exe")
}

Run the code above in your browser using DataLab