Spike Plot
spikeplot.RdProduces a spike plot of a numeric vector.
Usage
spikeplot(x, freq = FALSE, as.table = FALSE, col = par("col"),
lty = par("lty"), lwd = par("lwd"), lend = par("lend"),
type = "h", xlab = deparse1(substitute(x)), ylab = NULL,
capped = FALSE, cex = sqrt(lwd) / 2, pch = 19, pcol = col, scol = NULL,
slty = NULL, slwd = NULL, new.plot = TRUE, offset.x = 0, ymux = 1, ...)Arguments
- x
Numeric, passed into
table.- freq
Logical. If
TRUEthen the y-axis measures the frequencies, else the sample proportions. Intended to be ashist.- as.table
Logical. If
TRUEthen the call toplotis closer toplot(table(x), ...), meaning the labelling differs fromas.table = FALSE. The default is to converttable(x)into a numeric vector which is then passed intoplotso that the labelling is more uniform along the x-axis.- col, type, lty, lwd
See
par.- lend, xlab, ylab
See
par.- capped, cex, pch, pcol
First argument is logical. If
TRUEthen the others argument are used to place points at the top usingpointswithpcolbeing its colour. Seepar.- scol, slty, slwd
Similar to
col,ltyandlwdbut apply to some selected values. The input may be a named list such asscol = list("green" = c(2, 4, 6), "blue" = 5),slty = list("dashed" = c(2, 4, 6), "dotted" = 5),slwd = list("2" = c(2, 4, 6), "3" = 5), else a named vector such asscol = c("green" = 2, "green" = 4, "green" = 6, "blue" = 5),slty = c("dashed" = 2, "dashed" = 4, "dashed" = 6, "dotted" = 5),slwd = c("2" = 2, "2" = 4, "2" = 6, "3" = 5). The three arguments are ignored ifas.table = TRUE.- new.plot, offset.x
Logical and numeric. Add to an existing plot? If so, set
new.plot = FALSEand it is useful for the spikes to be shifted by some amountoffset.x.- ymux
Numeric, y-multiplier. The response is multiplied by
ymux. This can be useful when plotting subsets side-by-side so that the constituent proportions add up to the overall proportion.- ...
Additional graphical arguments passed into an ordinary
plot, for example,xlim,las,main.
Details
Heaping is a very commonly occurring phenomenon in
retrospective self-reported survey data.
Also known as digit preference data,
it is often characterized by an excess of multiples of 10 or 5
upon rounding.
For this type of data
this simple function is meant to be convenient for
plotting the frequencies or sample proportions of
a vector x representing a discrete random variable.
This type of plot
is known as a spike plot in STATA circles.
If table(x) works then this function should hopefully
work.
The default for type means that any heaping and
seeping should easily be seen.
If such features exist then GAITD regression is
potentially useful—see gaitdpoisson etc.
Currently missing values are ignored totally because
table(x) is used without further arguments;
this might change in the future.
See also
table,
plot,
par,
deparse1,
dgaitdplot,
plotdgaitd,
gaitdpoisson.
Examples
if (FALSE) { # \dontrun{
spikeplot(with(marital.nz, age), col = "pink2", lwd = 2)
} # }