# densityPlot

0th

Percentile

##### Nonparametric Density Estimates

densityPlot contructs and graphs nonparametric density estimates, possibly conditioned on a factor, using the standard R density function or by default adaptiveKernel, which computes an adaptive kernel density estimate.

Keywords
hplot
##### Usage
densityPlot(x, ...)# S3 method for default
kernel, xlim, ylim,
normalize=FALSE, xlab=deparse(substitute(x)), ylab="Density", main="",
col=carPalette(), lty=seq_along(col), lwd=2, grid=TRUE,
legend=TRUE, show.bw=FALSE, rug=TRUE, ...)# S3 method for formula
densityPlot(formula, data=NULL, subset,
from, to, cut=3, na.rm=TRUE)
##### Arguments
x

a numeric variable, the density of which is estimated.

g

an optional factor to divide the data.

formula

an R model formula, of the form ~ variable to estimate the unconditional density of variable, or variable ~ factor to estimate the density of variable within each level of factor.

data

an optional data frame containing the data.

subset

an optional vector defining a subset of the data.

na.action

a function to handle missing values; defaults to the value of the R na.action option, initially set to na.omit.

method

either "adaptive" (the default) for an adaptive-kernel estimate or "kernel" for a fixed-bandwidth kernel estimate.

bw

the geometric mean bandwidth for the adaptive-kernel or bandwidth of the kernel density estimate(s). Must be a numerical value or a function to compute the bandwidth (default bw.nrd0) for the adaptive kernel estimate; for the kernel estimate, may either the quoted name of a rule to compute the bandwidth, or a numeric value. If plotting by groups, bw may be a vector of values, one for each group. See density and bw.SJ for details of the kernel estimator.

a multiplicative adjustment factor for the bandwidth; the default, 1, indicates no adjustment; if plotting by groups, adjust may be a vector of adjustment factors, one for each group. The default bandwidth-selection rule tends to give a value that's too large if the distribution is asymmetric or has multiple modes; try setting adjust < 1, particularly for the adaptive-kernel estimator.

kernel

for densityPlot this is the name of the kernel function for the kernel estimator (the default is "gaussian", see density); or a kernel function for the adaptive-kernel estimator (the default is dnorm, producing the Gaussian kernel). For adaptivekernel this is a kernel function, defaulting to dnorm, which is the Gaussian kernel (standard-normal density).

xlim, ylim

axis limits; if missing, determined from the range of x-values at which the densities are estimated and the estimated densities.

normalize

if TRUE (the default is FALSE), the estimated densities are rescaled to integrate approximately to 1; particularly useful if the density is estimated over a restricted domain, as when from or to are specified.

xlab

label for the horizontal-axis; defaults to the name of the variable x.

ylab

label for the vertical axis; defaults to "Density".

main

plot title; default is empty.

col

vector of colors for the density estimate(s); defaults to the color carPalette.

lty

vector of line types for the density estimate(s); defaults to the successive integers, starting at 1.

lwd

line width for the density estimate(s); defaults to 2.

grid

if TRUE (the default), grid lines are drawn on the plot.

legend

a list of up to two named elements: location, for the legend when densities are plotted for several groups, defaults to "upperright" (see legend); and title of the legend, which defaults to the name of the grouping factor. If TRUE, the default, the default values are used; if FALSE, the legend is suppressed.

n

number of equally spaced points at which the adaptive-kernel estimator is evaluated; the default is 500.

from, to, cut

the range over which the density estimate is computed; the default, if missing, is min(x) - cut*bw, max(x) + cut*bw.

na.rm

remove missing values from x in computing the adaptive-kernel estimate? The default is TRUE.

show.bw

if TRUE, show the bandwidth(s) in the horizontal-axis label or (for multiple groups) the legend; the default is FALSE.

rug

if TRUE (the default), draw a rug plot (one-dimentional scatterplot) at the bottom of the density estimate.

arguments to be passed down.

##### Value

densityPlot invisibly returns the "density" object computed (or list of "density" objects) and draws a graph. adaptiveKernel returns an object of class "density" (see density).

##### References

Fox, J. and Weisberg, S. (2019) An R Companion to Applied Regression, Third Edition, Sage.

W. N. Venables and B. D. Ripley (2002) Modern Applied Statistics with S. New York: Springer.

B.W. Silverman (1986) Density Estimation for Statistics and Data Analysis. London: Chapman and Hall.

density, bw.SJ, plot.density

##### Aliases
• densityPlot
• densityPlot.default
• densityPlot.formula
##### Examples
# NOT RUN {
densityPlot(~ income, show.bw=TRUE, method="kernel", data=Prestige)
densityPlot(~ income, show.bw=TRUE, data=Prestige)
densityPlot(~ income, from=0, normalize=TRUE, show.bw=TRUE, data=Prestige)

densityPlot(income ~ type, data=Prestige)
densityPlot(~ income, show.bw=TRUE, method="kernel", data=Prestige)
densityPlot(~ income, show.bw=TRUE, data=Prestige)
densityPlot(~ income, from=0, normalize=TRUE, show.bw=TRUE, data=Prestige)

densityPlot(income ~ type, data=Prestige)
densityPlot(income ~ type, legend=list(location="top"), data=Prestige)

plot(adaptiveKernel(UN$infantMortality, from=0, adjust=0.75), col="magenta") lines(density(na.omit(UN$infantMortality), from=0, adjust=0.75), col="blue")
rug(UN$infantMortality, col="cyan") legend("topright", col=c("magenta", "blue"), lty=1, legend=c("adaptive kernel", "kernel"), inset=0.02) plot(adaptiveKernel(UN$infantMortality, from=0, adjust=0.75), col="magenta")
lines(density(na.omit(UN$infantMortality), from=0, adjust=0.75), col="blue") rug(UN$infantMortality, col="cyan")
legend("topright", col=c("magenta", "blue"), lty=1,