Draw a Cleveland dot plot.

```
dotchart(x, labels = NULL, groups = NULL, gdata = NULL,
cex = par("cex"), pt.cex = cex,
pch = 21, gpch = 21, bg = par("bg"),
color = par("fg"), gcolor = par("fg"), lcolor = "gray",
xlim = range(x[is.finite(x)]),
main = NULL, xlab = NULL, ylab = NULL, …)
```

x

either a vector or matrix of numeric values (`NA`

s are
allowed). If `x`

is a matrix the overall plot consists of
juxtaposed dotplots for each row. Inputs which satisfy
`is.numeric(x)`

but not
`is.vector(x) || is.matrix(x)`

are coerced by
`as.numeric`

, with a warning.

labels

a vector of labels for each point.
For vectors the default is to use `names(x)`

and for matrices
the row labels `dimnames(x)[[1]]`

.

groups

an optional factor indicating how the elements of
`x`

are grouped.
If `x`

is a matrix, `groups`

will default to the columns
of `x`

.

gdata

data values for the groups. This is typically a summary such as the median or mean of each group.

cex

the character size to be used. Setting `cex`

to a value smaller than one can be a useful way of avoiding label
overlap. Unlike many other graphics functions, this sets the actual
size, not a multiple of `par("cex")`

.

pt.cex

the `cex`

to be applied to plotting symbols.
This behaves like `cex`

in `plot()`

.

pch

the plotting character or symbol to be used.

gpch

the plotting character or symbol to be used for group values.

bg

the background color of plotting characters or symbols to be
used; use `par(bg= *)`

to set the background color of
the whole plot.

color

the color(s) to be used for points and labels.

gcolor

the single color to be used for group labels and values.

lcolor

the color(s) to be used for the horizontal lines.

xlim

horizontal range for the plot, see
`plot.window`

, for example.

main

overall title for the plot, see `title`

.

xlab, ylab

axis annotations as in `title`

.

…

graphical parameters can also be specified as arguments.

This function is invoked for its side effect, which is to produce two variants of dotplots as described in Cleveland (1985).

Dot plots are a reasonable substitute for bar plots.

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

Cleveland, W. S. (1985)
*The Elements of Graphing Data.*
Monterey, CA: Wadsworth.

Murrell, P. (2005) *R Graphics*. Chapman & Hall/CRC Press.

```
dotchart(VADeaths, main = "Death Rates in Virginia - 1940")
op <- par(xaxs = "i") # 0 -- 100%
dotchart(t(VADeaths), xlim = c(0,100),
main = "Death Rates in Virginia - 1940")
par(op)
```

Run the code above in your browser using DataLab