| sectioned.density {denstrip} | R Documentation |
Sectioned density plots (Cohen and Cohen, 2006) use shading and occlusion to give a compact illustration of a distribution, such as the empirical distribution of data.
sectioned.density(x, dens, at, width, offset, ny,
method=c("kernel","frequency"), nx, horiz=TRUE,
up.left = TRUE, colmax, colmin, gamma=1,
lattice=FALSE, ...)
panel.sectioned.density(...)
x |
Either the vector of points at which the density is
evaluated (if dens supplied), or a sample from the distribution
(if dens not supplied). |
dens |
Density at points. If dens is not supplied,
the density of the distribution underlying x is estimated using the method
specified in method. |
at |
Position of the bottom of the plot on the y-axis (if
horiz=TRUE) or position of the right of the plot on the
x-axis (if horiz=FALSE) (required). |
ny |
Number of fixed-width intervals for categorising the density. |
width |
Width of individual rectangles in the plot. Defaults to the range of the axis divided by 20. |
offset |
Offset for adjacent rectangles. Defaults to
width/3. |
method |
Method of estimating the density of x, when
dens is not supplied.
If "kernel" (the default)
then kernel density estimation is used, via density(x,...).
If "frequency" then the density is estimated as the relative
frequency in a series of bins, as in Cohen and Cohen (2006). This
method is controlled by the number of data bins nx.
|
nx |
Number of data bins for the "frequency" density
estimation method. The default uses Sturges' formula (see nclass.Sturges, hist). |
horiz |
If horiz=TRUE, then the plot is horizontal and
points upwards. If horiz=FALSE then the plot is vertical
and points leftwards, as the illustrations in Cohen and Cohen
(2006). |
up.left |
If changed to FALSE, then horizontal plots
point downwards and vertical plots point rightwards. |
colmax |
Darkest colour, either as a built-in R colour name (one
of colors()) or an RGB hex value. Defaults to
par("fg") or its lattice equivalent, which is normally
"black", or "#000000". |
colmin |
Lightest colour, either as a built-in R colour name (one
of colors()) or an RGB hex value. Defaults to
par("bg") or its lattice equivalent, which is normally equivalent to
"white", or "#FFFFFF". |
gamma |
Gamma correction to apply to the colour palette, see denstrip. |
lattice |
Set this to TRUE to make sectioned.density
a lattice panel function instead of a base graphics function. panel.sectioned.density(x,...) is equivalent to
sectioned.density(x, lattice=TRUE, ...). |
... |
Additional arguments supplied to density(x,...), if
method="kernel". |
Christopher Jackson <chris.jackson@mrc-bsu.cam.ac.uk> (R implementation)
Cohen, D. J. and Cohen, J. The sectioned density plot. The American Statistician (2006) 60(2):167–174
## Fisher's iris data
## Various settings to change the look of the plot
hist(iris$Sepal.Length, nclass=20, col="lightgray")
sectioned.density(iris$Sepal.Length, at=0.2)
sectioned.density(iris$Sepal.Length, at=5)
sectioned.density(iris$Sepal.Length, at=5, width=0.5)
sectioned.density(iris$Sepal.Length, at=7, width=0.5,
offset=0.1, colmax="darkmagenta")
sectioned.density(iris$Sepal.Length, at=9, width=0.5,
offset=0.1, ny=15, colmin="lemonchiffon")
## frequency method less smooth than kernel density
sectioned.density(iris$Sepal.Length, at=12, width=0.5, offset=0.1,
method="frequency")
sectioned.density(iris$Sepal.Length, at=13.5, width=0.5, offset=0.1,
method="frequency", nx=20)
## Illustrate a known distribution
x <- seq(-4, 4, length=1000)
dens <- dnorm(x)
plot(x, xlim=c(-5, 5), ylim=c(-5, 5), xlab="x", ylab="x", type="n")
sectioned.density(x, dens, ny=8, at=0, width=0.3)
sectioned.density(x, dens, ny=16, at=2, width=0.1)
sectioned.density(x, dens, at=-3, horiz=FALSE)
sectioned.density(x, dens, at=4, width=0.3, horiz=FALSE)