Plot a probability denstity function with x-axis limits determined by quantiles of the distribution. Quantiles are computed using a quantile function or cumulative distribution function, whichever is supplied.

plotpdf(pdf, qdf, cdf, lq = 0.01, uq = 0.99, ...)

## Arguments

pdf probability density to be plotted, a function. quantile function to be used for computation of quantiles, a function. cumulative distribution function to be used for computation of quantiles, a function. This argument is used if qdf is not given, see Details' section. lower quantile, used in the computation of the left limit. upper quantile, used in the computation of the right limit. additional arguments to be passed on to the plot function.

## Details

The function plots pdf(x) over the interval (xmin,xmax) where xmin and xmax are the lqth and uqth quantiles, respectively, of the distribution. The quantile function, qdf, is used, if supplied. Otherwise the quantiles are computed numerically from the cdf.

Argument pdf is not required to be a pdf, it may be any function. For example, the same way of choosing the limits may be appropriate for a plot of the cdf, see the examples.

Similarly, qdf and cdf need not be related to pdf.

cdf2quantile

## Examples

pdf1 <- function(x) dnorm(x, mean = 100, sd = 5)
qdf1 <- function(x) qnorm(x, mean = 100, sd = 5)
cdf1 <- function(x) pnorm(x, mean = 100, sd = 5)

plot(pdf1) # needs to specify 'from' and 'to' args for meaningful plotplotpdf(pdf1, qdf1)                               # using quantile functionplotpdf(pdf1, cdf = cdf1)                         # using cdfplotpdf(pdf1, cdf = cdf1, lq = 0.001, uq = 0.999) # ... and non-default quantiles
plotpdf(cdf1, cdf = cdf1, lq = 0.001, uq = 0.999) # plot a cdf

## a mixture distribution:
pf1 <- function(x){
0.25 * pnorm(x, mean = 3, sd = 0.2) + 0.75 * pnorm(x, mean = -1, sd = 0.5)
}
df1 <- function(x){
0.25 * dnorm(x, mean = 3, sd = 0.2) + 0.75 * dnorm(x, mean = -1, sd = 0.5)
}

plotpdf(df1, cdf = pf1) # plot the pdfplotpdf(pf1, cdf = pf1) # plot the cdf
c(cdf2quantile(0.05, pf1), cdf2quantile(0.95, pf1))#> [1] -1.750551  3.168325`