# histogram

##### Histograms and Kernel Density Plots

Draw Histograms and Kernel Density Plots, possibly conditioned on other variables.

- Keywords
- hplot

##### Usage

```
histogram(x, data, ...)
densityplot(x, data, ...)
## S3 method for class 'formula':
histogram(x,
data,
allow.multiple, outer = TRUE,
auto.key = FALSE,
aspect = "fill",
panel = lattice.getOption("panel.histogram"),
prepanel, scales, strip, groups,
xlab, xlim, ylab, ylim,
type = c("percent", "count", "density"),
nint = if (is.factor(x)) nlevels(x)
else round(log2(length(x)) + 1),
endpoints = extend.limits(range(x, finite = TRUE), prop = 0.04),
breaks,
equal.widths = TRUE,
drop.unused.levels = lattice.getOption("drop.unused.levels"),
...,
lattice.options = NULL,
default.scales = list(),
subscripts,
subset)
```## S3 method for class 'numeric':
histogram(x, data = NULL, xlab, \dots)
## S3 method for class 'factor':
histogram(x, data = NULL, xlab, \dots)

## S3 method for class 'formula':
densityplot(x,
data,
allow.multiple = is.null(groups) || outer,
outer = !is.null(groups),
auto.key = FALSE,
aspect = "fill",
panel = lattice.getOption("panel.densityplot"),
prepanel, scales, strip, groups,
xlab, xlim, ylab, ylim,
bw, adjust, kernel, window, width, give.Rkern,
n = 50, from, to, cut, na.rm,
drop.unused.levels = lattice.getOption("drop.unused.levels"),
...,
lattice.options = NULL,
default.scales = list(),
subscripts,
subset)
## S3 method for class 'numeric':
densityplot(x, data = NULL, xlab, \dots)

do.breaks(endpoints, nint)

##### Details

`histogram`

draws Conditional Histograms, while
`densityplot`

draws Conditional Kernel Density Plots. The
density estimate in `densityplot`

is actually calculated using
the function `density`

, and all arguments accepted by it can be
passed (as `...`

) in the call to `densityplot`

to control
the output. See documentation of `density`

for details. (Note:
The default value of the argument `n`

of `density`

is
changed to 50.)
These 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.

`do.breaks`

is an utility function that calculates breakpoints
given an interval and the number of pieces to break it into.

##### 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.

##### Note

The form of the arguments accepted by the default panel function
`panel.histogram`

is different from that in S-PLUS. Whereas
S-PLUS calculates the heights inside `histogram`

and passes only
the breakpoints and the heights to the panel function, here the
original variable `x`

is passed along with the breakpoints. This
allows plots as in the second example below.

##### References

Sarkar, Deepayan (2008) "Lattice: Multivariate Data Visualization with
R", Springer.

##### See Also

`xyplot`

,
`panel.histogram`

,
`density`

,
`panel.densityplot`

,
`panel.mathdensity`

,
`Lattice`

##### Examples

```
require(stats)
histogram( ~ height | voice.part, data = singer, nint = 17,
endpoints = c(59.5, 76.5), layout = c(2,4), aspect = 1,
xlab = "Height (inches)")
histogram( ~ height | voice.part, data = singer,
xlab = "Height (inches)", type = "density",
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "black",
args = list(mean=mean(x),sd=sd(x)))
} )
densityplot( ~ height | voice.part, data = singer, layout = c(2, 4),
xlab = "Height (inches)", bw = 5)
```

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