Skip to contents

Make quantile-quantile plots and probability-probability plots using maximum likelihood estimation.


ppmlplot(y, obj, = TRUE, datax = FALSE, ...)


ppmlpoints(y, obj, = TRUE, datax = TRUE, ...)

qqmlplot(y, obj, = TRUE, datax = FALSE, ...)

qqmlline(y, obj, datax = FALSE, probs = c(0.25, 0.75), qtype = 7, ...)

qqmlpoints(y, obj, = TRUE, datax = TRUE, ...)



Numeric vector; The data to plot on the y axis when datax is FALSE.


Either an univariateML object or a function that returns a univariateML object when called with y as its only argument.

Logical; should the result be plotted?


Logical; should y be plotted on the x-axis? Defaults to FALSE in qqmlplot and ppmlplot but TRUE in qqmlpoints and ppmlpoints.


Graphical parameters.


Numeric vector of length two, representing probabilities. Corresponding quantile pairs define the line drawn.


The type of quantile computation used in quantile.


For qqmlplot, qqmlpoints, ppmlplot, and ppmlpoints, a list with components x (plotted on the x axis) and y (plotted on the y axis). qqmlline and ppmllinereturns nothing.


qqmlplot produces a quantile-quantile plot (Q-Q plot) of the values in y with respect to the distribution defined by obj, which is either a univariateML object or a function returning a univariateML object when called with y. qqmlline adds a line to a “theoretical”, quantile-quantile plot which passes through the probs quantiles, by default the first and third quartiles. qqmlpointsbehaves like stats::points and adds a Q-Q plot to an existing plot.

ppmlplot, ppmlline, and ppmlpoints produce probability-probability plots (or P-P plots). They behave similarly to the quantile-quantile plot functions.

This function is modeled after qqnorm.

Graphical parameters may be given as arguments to all the functions below.


M. B. Wilk, R. Gnadadesikan, Probability plotting methods for the analysis for the analysis of data, Biometrika, Volume 55, Issue 1, March 1968, Pages 1–17,


## Make a single probability plot with a line.

obj <- mlgamma(Nile)
qqmlplot(Nile, obj)
qqmlline(Nile, obj)

## Make multiple probability plots. datax = TRUE must be used to make this
## look good.

ppmlplot(airquality$Wind, mlgamma, main = "Many P-P plots")
ppmlpoints(airquality$Wind, mlexp, col = "red")
ppmlpoints(airquality$Wind, mlweibull, col = "purple")
ppmlpoints(airquality$Wind, mllnorm, col = "blue")