mwc-random-0.12.0.0: test/visual.R
# Ugly script for displaying distributions alogside with theoretical
# distribution.
view.dumps <- function() {
# Load random data from dist
load.d <- function(name) read.table(name)[,1]
# Plots for continous distribution
plot.d <- function(name, dens, rng) {
smp <- load.d( name )
plot( density(smp), xlim=rng, main=name, col='blue', lwd=2)
hist( smp, probability=TRUE, breaks=100, add=TRUE)
plot( dens, xlim=rng, col='red', add=TRUE, lwd=2)
}
# plots for discrete distribution
plot.ds <- function( name, xs, prob) {
smp <- load.d( name )
h <- hist( smp,
breaks = c( max(xs) + 0.5, xs - 0.5),
freq=FALSE, main = name
)
dh <- sqrt( h$count ) / max( 1, sum( h$count ) )
arrows( xs, h$density + dh,
xs, h$density - dh,
angle=90, code=3, length=0.2 )
points( xs, prob(xs), pch='0', col='red', type='b')
}
################################################################
# Normal
plot.d ("distr/normal-0-1",
function(x) dnorm( x, 0, 1 ),
c(-4,4) )
readline()
#
plot.d ("distr/normal-1-2",
function(x) dnorm( x, 1, 2 ),
c(-6,8) )
readline();
################################################################
# Gamma
plot.d ("distr/gamma-1.0-1.0",
function(x) dgamma( x, 1, 1 ),
c(-1,8) )
readline();
#
plot.d ("distr/gamma-0.3-0.4",
function(x) dgamma( x, 0.3, scale=0.4 ),
c(-0.25,2) )
readline();
#
plot.d ("distr/gamma-0.3-3.0",
function(x) dgamma( x, 0.3, scale=3.0 ),
c(-1,5) )
readline();
#
plot.d ("distr/gamma-3.0-0.4",
function(x) dgamma( x, 3.0, scale=0.4 ),
c(-1,6) )
readline();
#
plot.d ("distr/gamma-3.0-3.0",
function(x) dgamma( x, 3.0, scale=3.0 ),
c(-1,32) )
readline();
################################################################
# Exponential
plot.d ("distr/exponential-1",
function(x) dexp(x,1),
c(-0.5, 9) )
readline()
#
plot.d ("distr/exponential-3",
function(x) dexp(x,3),
c(-0.5, 3) )
readline()
################################################################
# Poisson
plot.ds( "distr/poisson-0.1", 0:6, function(x) dpois(x, lambda=0.1) )
readline()
#
plot.ds( "distr/poisson-1.0", 0:10, function(x) dpois(x, lambda=1.0) )
readline()
#
plot.ds( "distr/poisson-4.5", 0:20, function(x) dpois(x, lambda=4.5) )
readline()
#
plot.ds( "distr/poisson-30", 0:100, function(x) dpois(x, lambda=30) )
readline()
#
################################################################
# Binomial
plot.ds( "distr/binom-4-0.5", 0:4, function(x) dbinom(x, 4, 0.5) )
readline()
#
plot.ds( "distr/binom-10-0.1", 0:10, function(x) dbinom(x, 10, 0.1) )
readline()
#
plot.ds( "distr/binom-10-0.6", 0:10, function(x) dbinom(x, 10, 0.6) )
readline()
#
plot.ds( "distr/binom-10-0.8", 0:10, function(x) dbinom(x, 10, 0.8) )
readline()
#
}