Provides a simple way to generate plots of pdfs, probability mass functions, cdfs, probability histograms, and normal-quantile plots for distributions known to R.
plotDist(
dist,
...,
xlim = NULL,
ylim = NULL,
add,
under = FALSE,
packets = NULL,
rows = NULL,
columns = NULL,
kind = c("density", "cdf", "qq", "histogram"),
xlab = "",
ylab = "",
breaks = NULL,
type,
resolution = 5000L,
params = NULL
)
A string identifying the distribution. This should work
with any distribution that has associated functions beginning
with 'd', 'p', and 'q' (e.g,
dnorm()
,
pnorm()
, and
qnorm()
). dist
should match the name of the
distribution with the initial 'd', 'p', or 'q' removed.
other arguments passed along to lattice graphing routines
a numeric vector of length 2 or NULL
, in which case
the central 99.8 of the distribution is used.
a numeric vector of length 2 or NULL
, in which case
a heuristic is used to avoid chasing asymptotes in distributions like
the F distributions with 1 numerator degree of freedom.
a logical indicating whether the plot should be added to the previous lattice plot.
If missing, it will be set to match under
.
a logical indicating whether adding should be done in a layer under or over the existing
layers when add = TRUE
.
specification of which panels will be added to when
add
is TRUE
. See latticeExtra::layer()
.
one of "density", "cdf", "qq", or "histogram" (or prefix of any of these)
as per other lattice functions
a vector of break points for bins of histograms,
as in histogram()
passed along to various lattice graphing functions
number of points to sample when generating the plots
a list containing parameters for the distribution. If NULL
(the default),
this list is created from elements of \dots
that are either unnamed or have names among
the formals of the appropriate distribution function. See the examples.
plotDist()
determines whether the distribution
is continuous or discrete by seeing if all the sampled quantiles are
unique. A discrete random variable with many possible values could
fool this algorithm and be considered continuous.
The plots are done referencing a data frame with variables
x
and y
giving points on the graph of the
pdf, pmf, or cdf for the distribution. This can be useful in conjunction
with the groups
argument. See the examples.
plotDist('norm')
plotDist('norm', type='h')
plotDist('norm', kind='cdf')
plotDist('exp', kind='histogram')
plotDist('binom', params=list( 25, .25)) # explicit params
plotDist('binom', 25, .25) # params inferred
plotDist('norm', mean=100, sd=10, kind='cdf') # params inferred
plotDist('binom', 25, .25, xlim=c(-1,26) ) # params inferred
plotDist('binom', params=list( 25, .25), kind='cdf')
plotDist('beta', params=list( 3, 10), kind='density')
plotDist('beta', params=list( 3, 10), kind='cdf')
plotDist( "binom", params=list(35,.25),
groups= y < dbinom(qbinom(0.05, 35, .25), 35,.25) )
plotDist( "binom", params=list(35,.25),
groups= y < dbinom(qbinom(0.05, 35, .25), 35,.25),
kind='hist')
plotDist("norm", mean=10, sd=2, col="blue", type="h")
plotDist("norm", mean=12, sd=2, col="red", type="h", under=TRUE)
plotDist("binom", size=100, prob=.30) +
plotDist("norm", mean=30, sd=sqrt(100 * .3 * .7))
plotDist("chisq", df=4, groups = x > 6, type="h")
plotDist("f", df1=1, df2 = 99)
if (require(mosaicData)) {
histogram( ~age|sex, data=HELPrct)
m <- mean( ~age|sex, data=HELPrct)
s <- sd(~age|sex, data=HELPrct)
plotDist( "norm", mean=m[1], sd=s[1], col="red", add=TRUE, packets=1)
plotDist( "norm", mean=m[2], sd=s[2], col="blue", under=TRUE, packets=2)
}