stat_chull {gggda} | R Documentation |
Convex hulls and hull peelings
Description
Restrict planar data to the boundary points of its convex hull, or of nested convex hulls containing specified fractions of points.
Usage
stat_chull(
mapping = NULL,
data = NULL,
geom = "polygon",
position = "identity",
show.legend = NA,
inherit.aes = TRUE,
...
)
stat_peel(
mapping = NULL,
data = NULL,
geom = "polygon",
position = "identity",
num = NULL,
by = 1L,
breaks = c(0.5),
cut = c("above", "below"),
show.legend = NA,
inherit.aes = TRUE,
...
)
Arguments
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data for this layer.
When using a
|
position |
A position adjustment to use on the data for this layer. This
can be used in various ways, including to prevent overplotting and
improving the display. The
|
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
... |
Additional arguments passed to |
num |
A positive integer; the number of hulls to peel. Pass |
by |
A positive integer; with what frequency to include consecutive
hulls, pairs with |
breaks |
A numeric vector of fractions (between |
cut |
Character; one of |
Details
As used in a ggplot2 vignette,
stat_chull()
restricts a dataset with x
and y
variables to the points
that lie on its convex hull.
Building on this, stat_peel()
returns hulls from a convex hull peeling:
a subset of sequentially removed hulls containing specified fractions of
the data.
Value
Multidimensional position aesthetics
This statistical transformation is compatible with the convenience function
aes_coord()
.
Some transformations (e.g. stat_center()
) commute with projection to the
lower (1 or 2)-dimensional biplot space. If they detect aesthetics of the
form ..coord[0-9]+
, then ..coord1
and ..coord2
are converted to x
and
y
while any remaining are ignored.
Other transformations (e.g. stat_spantree()
) yield different results in a
lower-dimensional biplot when they are computed before versus after
projection. If the stat layer detects these aesthetics, then the
transformation is performed before projection, and the results in the first
two dimensions are returned as x
and y
.
A small number of transformations (stat_rule()
) are incompatible with
these aesthetics but will accept aes_coord()
without warning.
Computed variables
These are calculated during the statistical transformation and can be accessed with delayed evaluation.
hull
the position of
breaks
that defines each hullfrac
the value of
breaks
that defines each hullprop
the actual proportion of data within each hull
References
Barnett V (1976) "The Ordering of Multivariate Data". Journal of the Royal Statistical Society: Series A (General), 139(3): 318–344. doi:10.2307/2344839
See Also
Other stat layers:
stat_bagplot()
,
stat_center()
,
stat_cone()
,
stat_depth()
,
stat_rule()
,
stat_scale()
,
stat_spantree()
Examples
ggplot(USJudgeRatings, aes(x = INTG, y = PREP)) +
geom_point() +
stat_chull(alpha = .5)
ggplot(USJudgeRatings, aes(x = INTG, y = PREP)) +
stat_peel(
aes(alpha = after_stat(hull)),
breaks = seq(.1, .9, .2)
)
ggplot(USJudgeRatings, aes(x = INTG, y = PREP)) +
stat_peel(
aes(alpha = after_stat(hull)),
num = 6, by = 2, color = "black"
)
# specify fractions of points
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
stat_peel(aes(fill = Species, alpha = after_stat(frac)),
breaks = seq(.1, .9, .2)) +
scale_alpha_continuous(trans = scales::reverse_trans()) +
geom_point()
# specify number of peels
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
stat_peel(fill = "transparent", num = 3) +
geom_point()
# mapping to opacity overrides transparency
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
stat_peel(aes(alpha = after_stat(hull)), fill = "transparent", num = 3) +
geom_point()