
Multiple points are plotted as ‘sunflowers’ with multiple leaves (‘petals’) such that overplotting is visualized instead of accidental and invisible.
sunflowerplot(x, …)# S3 method for default
sunflowerplot(x, y = NULL, number, log = "", digits = 6,
xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL,
add = FALSE, rotate = FALSE,
pch = 16, cex = 0.8, cex.fact = 1.5,
col = par("col"), bg = NA, size = 1/8, seg.col = 2,
seg.lwd = 1.5, …)
# S3 method for formula
sunflowerplot(formula, data = NULL, xlab = NULL, ylab = NULL, …,
subset, na.action = NULL)
numeric vector of x
-coordinates of length n
,
say, or another valid plotting structure, as for
plot.default
, see also xy.coords
.
numeric vector of y
-coordinates of length n
.
integer vector of length n
. number[i]
= number
of replicates for (x[i], y[i])
, may be 0.
Default (missing(number)
): compute the exact multiplicity of
the points x[], y[]
, via
xyTable()
.
character indicating log coordinate scale, see
plot.default
.
when number
is computed (i.e., not specified),
x
and y
are rounded to digits
significant
digits before multiplicities are computed.
character label for x-, or y-axis, respectively.
numeric(2)
limiting the extents of the x-,
or y-axis.
logical; should the plot be added on a previous one ?
Default is FALSE
.
logical; if TRUE
, randomly rotate the
sunflowers (preventing artefacts).
plotting character to be used for points
(number[i]==1
) and center of sunflowers.
numeric; character size expansion of center points
(s. pch
).
numeric shrinking factor to be used for the
center points when there are flower leaves,
i.e., cex / cex.fact
is used for these.
colors for the plot symbols, passed to
plot.default
.
of sunflower leaves in inches, 1[in] := 2.54[cm]. Default: 1/8\", approximately 3.2mm.
color to be used for the segments which make the
sunflowers leaves, see par(col=)
;
col = "gold"
reminds of real sunflowers.
numeric; the line width for the leaves' segments.
further arguments to plot
[if
add = FALSE
], or to be passed to or from another method.
a formula
, such as y ~ x
.
a data.frame (or list) from which the variables in
formula
should be taken.
an optional vector specifying a subset of observations to be used in the fitting process.
a function which indicates what should happen
when the data contain NA
s. The default is to ignore case
with missing values.
A list with three components of same length,
x coordinates
y coordinates
number
Use xyTable() (from package grDevices) if you are only interested in this return value.
A scatter plot is drawn with ‘sunflowers’ as symbols.
This is a generic function with default and formula methods.
For number[i] == 1
, a (slightly enlarged) usual plotting symbol
(pch
) is drawn. For number[i] > 1
, a small plotting
symbol is drawn and number[i]
equi-angular ‘rays’
emanate from it.
If rotate = TRUE
and number[i] >= 2
, a random direction
is chosen (instead of the y-axis) for the first ray. The goal is to
jitter
the orientations of the sunflowers in order to
prevent artefactual visual impressions.
Chambers, J. M., Cleveland, W. S., Kleiner, B. and Tukey, P. A. (1983). Graphical Methods for Data Analysis. Wadsworth.
Schilling, M. F. and Watkins, A. E. (1994). A suggestion for sunflower plots. The American Statistician, 48, 303--305. 10.2307/2684839.
Murrell, P. (2005). R Graphics. Chapman & Hall/CRC Press.
# NOT RUN {
require(stats) # for rnorm
require(grDevices)
## 'number' is computed automatically:
sunflowerplot(iris[, 3:4])
## Imitating Chambers et al, p.109, closely:
sunflowerplot(iris[, 3:4], cex = .2, cex.fact = 1, size = .035, seg.lwd = .8)
## or
sunflowerplot(Petal.Width ~ Petal.Length, data = iris,
cex = .2, cex.fact = 1, size = .035, seg.lwd = .8)
sunflowerplot(x = sort(2*round(rnorm(100))), y = round(rnorm(100), 0),
main = "Sunflower Plot of Rounded N(0,1)")
## Similarly using a "xyTable" argument:
xyT <- xyTable(x = sort(2*round(rnorm(100))), y = round(rnorm(100), 0),
digits = 3)
utils::str(xyT, vec.len = 20)
sunflowerplot(xyT, main = "2nd Sunflower Plot of Rounded N(0,1)")
## A 'marked point process' {explicit 'number' argument}:
sunflowerplot(rnorm(100), rnorm(100), number = rpois(n = 100, lambda = 2),
main = "Sunflower plot (marked point process)",
rotate = TRUE, col = "blue4")
# }
Run the code above in your browser using DataLab