Learn R Programming

berryFunctions (version 1.9.0)

linLogHist: lin-log transition histogram

Description

draw histograms that gradually transform from a linear to a logarithmic axis

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, ...)

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)'
axisargs
List of arguments passed to logVals, like base. DEFAULT: NULL
sleep
Pause time between frames, in seconds, passed to Sys.sleep. DEFAULT: 0
axisargs2
List of arguments passed to logAxisin 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). Overides 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

Value

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

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)

## 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