# B_04_qqmath

##### Q-Q Plot with Theoretical Distribution

Draw quantile-Quantile plots of a sample against a theoretical distribution, possibly conditioned on other variables.

- Keywords
- dplot

##### Usage

`qqmath(x, data, …)`# S3 method for formula
qqmath(x,
data,
allow.multiple = is.null(groups) || outer,
outer = !is.null(groups),
distribution = qnorm,
f.value = NULL,
auto.key = FALSE,
aspect = "fill",
panel = lattice.getOption("panel.qqmath"),
prepanel = NULL,
scales, strip, groups,
xlab, xlim, ylab, ylim,
drop.unused.levels = lattice.getOption("drop.unused.levels"),
…,
lattice.options = NULL,
default.scales = list(),
default.prepanel = lattice.getOption("prepanel.default.qqmath"),
subscripts,
subset)
# S3 method for numeric
qqmath(x, data = NULL, ylab, …)

##### Arguments

- x
The object on which method dispatch is carried out.

For the

`"formula"`

method,`x`

should be a formula of the form`~ x | g1 * g2 * …`

, where`x`

should be a numeric variable. For the`"numeric"`

method,`x`

should be a numeric vector.- data
For the

`formula`

method, an optional data source (usually a data frame) in which variables are to be evaluated (see`xyplot`

for details).`data`

should not be specified for the other methods, and is ignored with a warning if it is.- distribution
A quantile function that takes a vector of probabilities as argument and produces the corresponding quantiles from a theoretical distribution. Possible values are

`qnorm`

,`qunif`

, etc. Distributions with other required arguments need to be provided as user-defined functions (see example with`qt`

).- f.value
An optional numeric vector of probabilities, quantiles corresponding to which should be plotted. This can also be a function of a single integer (representing sample size) that returns such a numeric vector. A typical value for this argument is the function

`ppoints`

, which is also the S-PLUS default. If specified, the probabilities generated by this function is used for the plotted quantiles, through the`quantile`

function for the sample, and the function specified as the`distribution`

argument for the theoretical distribution.`f.value`

defaults to`NULL`

, which has the effect of using`ppoints`

for the quantiles of the theoretical distribution, but the exact data values for the sample. This is similar to what happens for`qqnorm`

, but different from the S-PLUS default of`f.value=ppoints`

.For large

`x`

, this argument can be used to restrict the number of points plotted. See also the`tails.n`

argument in`panel.qqmath`

.- panel
A function, called once for each panel, that uses the packet (subset of panel variables) corresponding to the panel to create a display. The default panel function

`panel.qqmath`

is documented separately, and has arguments that can be used to customize its output in various ways. Such arguments can usually be directly supplied to the high-level function.- allow.multiple, outer
See

`xyplot`

.- auto.key
See

`xyplot`

.- aspect
See

`xyplot`

.- prepanel
See

`xyplot`

.- scales
See

`xyplot`

.- strip
See

`xyplot`

.- groups
See

`xyplot`

.- xlab, ylab
See

`xyplot`

.- xlim, ylim
See

`xyplot`

.- drop.unused.levels
See

`xyplot`

.- lattice.options
See

`xyplot`

.- default.scales
See

`xyplot`

.- subscripts
See

`xyplot`

.- subset
See

`xyplot`

.- default.prepanel
Fallback prepanel function. See

`xyplot`

.- …
Further arguments. See corresponding entry in

`xyplot`

for non-trivial details.

##### Details

`qqmath`

produces Q-Q plots of the given sample against a
theoretical distribution. The default behaviour of `qqmath`

is
different from the corresponding S-PLUS function, but is similar to
`qqnorm`

. See the entry for `f.value`

for specifics.

The implementation details are also different from S-PLUS. In
particular, all the important calculations are done by the panel (and
prepanel function) and not `qqmath`

itself. In fact, both the
arguments `distribution`

and `f.value`

are passed unchanged
to the panel and prepanel function. This allows, among other things,
display of grouped Q-Q plots, which are often useful. See the help
page for `panel.qqmath`

for further details.

This and all other high level Trellis functions have several arguments
in common. These are extensively documented only in the help page for
`xyplot`

, which should be consulted to learn more detailed
usage.

##### Value

An object of class `"trellis"`

. The
`update`

method can be used to
update components of the object and the
`print`

method (usually called by
default) will plot it on an appropriate plotting device.

##### See Also

`xyplot`

, `panel.qqmath`

,
`panel.qqmathline`

, `prepanel.qqmathline`

,
`Lattice`

, `quantile`

##### Examples

```
# NOT RUN {
qqmath(~ rnorm(100), distribution = function(p) qt(p, df = 10))
qqmath(~ height | voice.part, aspect = "xy", data = singer,
prepanel = prepanel.qqmathline,
panel = function(x, ...) {
panel.qqmathline(x, ...)
panel.qqmath(x, ...)
})
vp.comb <-
factor(sapply(strsplit(as.character(singer$voice.part), split = " "),
"[", 1),
levels = c("Bass", "Tenor", "Alto", "Soprano"))
vp.group <-
factor(sapply(strsplit(as.character(singer$voice.part), split = " "),
"[", 2))
qqmath(~ height | vp.comb, data = singer,
groups = vp.group, auto.key = list(space = "right"),
aspect = "xy",
prepanel = prepanel.qqmathline,
panel = function(x, ...) {
panel.qqmathline(x, ...)
panel.qqmath(x, ...)
})
# }
```

*Documentation reproduced from package lattice, version 0.20-38, License: GPL (>= 2)*