```
## S3 method for class 'default':
mosaicplot(x, main = deparse(substitute(x)), sub = NULL, xlab = NULL,
ylab = NULL, sort = NULL, off = NULL, dir = NULL,
color = FALSE, shade = !(is.null(residuals) && is.null(margin)), margin = NULL,
cex.axis = 0.66, las = par("las"), clegend = TRUE,
type = c("pearson", "deviance", "FT"), residuals = NULL, ...)
## S3 method for class 'formula':
mosaicplot(formula, data = NULL, \dots,
main = deparse(substitute(data)), subset)
```

x

a contingency table in array form, with optional category
labels specified in the

`dimnames(x)`

attribute. The table is
best created by the `table()`

command.main

character string for the mosaic title.

sub

character string for the mosaic sub-title (at bottom).

xlab,ylab

x- and y-axis labels used for the plot; by default,
the first and second element of

`names(dimnames(X))`

(i.e., the
name of the first and second variable in `X`

).sort

vector ordering of the variables, containing a permutation
of the integers

`1:length(dim(x))`

(the default).off

vector of offsets to determine percentage spacing at each
level of the mosaic (appropriate values are between 0 and 20,
and the default is 10 at each level). There should be one
offset for each dimension of the contingency table.

dir

vector of split directions (

`"v"`

for vertical and
`"h"`

for horizontal) for each level of the mosaic, one
direction for each dimension of the contingency table. The
default consists of alternating directions, beginning color

logical or (recycling) vector of colors for color
shading, used only when

`shade`

is `FALSE`

. The default
`color=FALSE`

gives empty boxes with no shading.cex.axis

The magnification to be used for axis annotation,
as a multiple of

`par("cex")`

.las

numeric; the style of axis labels, see

`par`

.shade

a logical indicating whether to produce extended mosaic
plots, or a numeric vector of at most 5 distinct positive numbers
giving the absolute values of the cut points for the residuals.
If no marginal model and no residuals are specified,

clegend

logical. Should a color legend be plotted? (only needed
if

`shade`

is `TRUE`

).margin

a list of vectors with the marginal totals to be fit in
the log-linear model, or a formula as used in

`loglm`

.
By default, an independence model is fitted.
See `loglin`

and

type

a character string indicating the type of residual to be
represented. Must be one of

`"pearson"`

(giving components of
Pearson's $\chi^2$), `"deviance"`

(giving
components of the likelihood ratio $\chi^2$), or

formula

a formula, such as

`y ~ x`

.data

a data.frame (or list), or a contingency table from which
the variables in

`formula`

should be taken....

further arguments to be passed to or from methods.

subset

an optional vector specifying a subset of observations
to be used for plotting.

residuals

explicit argument for the residuals to be used in
extended mosaic plots.

`mosaicplot.default`

) and a formula interface
(`mosaicplot.formula`

).Extended mosaic displays show the standardized residuals of a loglinear model of the counts from by the color and outline of the mosaic's tiles. (Standardized residuals are often referred to a standard normal distribution.) Negative residuals are drawn in shaded of red and with broken outlines; positive ones are drawn in blue with solid outlines.

For the formula method, if `data`

is an object inheriting from
classes `"table"`

or `"ftable"`

, or an array with more than
2 dimensions, it is taken as a contingency table, and hence all
entries should be nonnegative. In this case, the left-hand side of
`formula`

should be empty, and the variables on the right-hand
side should be taken from the names of the dimnames attribute of the
contingency table. A marginal table of these variables is computed,
and a mosaic of this table is produced.

Otherwise, `data`

should be a data frame or matrix, list or
environment containing the variables to be cross-tabulated. In this
case, after possibly selecting a subset of the data as specified by
the `subset`

argument, a contingency table is computed from the
variables given in `formula`

, and a mosaic is produced from
this.

See Emerson (1998) for more information and a case study with television viewer data from Nielsen Media Research.

Emerson, J. W. (1998)
Mosaic displays in S-PLUS: a general implementation and a case study.
*Statistical Computing and Graphics Newsletter (ASA)*,
**9**, 1, 17--23.

Friendly, M. (1994)
Mosaic displays for multi-way contingency tables.
*Journal of the American Statistical Association*, **89**,
190--200.

The home page of Michael Friendly
(

`assocplot`

,
`loglin`

.data(Titanic) mosaicplot(Titanic, main = "Survival on the Titanic", color = TRUE) ## Formula interface for tabulated data: mosaicplot(~ Sex + Age + Survived, data = Titanic, color = TRUE) data(HairEyeColor) mosaicplot(HairEyeColor, shade = TRUE) ## Independence model of hair and eye color and sex. Indicates that ## there are significantly more blue eyed blond females than expected ## in the case of independence (and too few brown eyed blond females). mosaicplot(HairEyeColor, shade = TRUE, margin = list(c(1,2), 3)) ## Model of joint independence of sex from hair and eye color. Males ## are underrepresented among people with brown hair and eyes, and are ## overrepresented among people with brown hair and blue eyes, but not ## ``significantly''. ## Formula interface for raw data: visualize crosstabulation of numbers ## of gears and carburettors in Motor Trend car data. data(mtcars) mosaicplot(~ gear + carb, data = mtcars, color = TRUE) mosaicplot(~ gear + carb, data = mtcars, color = 2:3)# color recycling