geom_hdr_rug {ggdensity} | R Documentation |
Rug plots of marginal highest density region estimates
Description
Perform 1D density estimation, compute and plot the resulting highest density
regions in a way similar to ggplot2::geom_rug()
.
Note, the plotted objects have probabilities mapped to the alpha
aesthetic by default.
Usage
stat_hdr_rug(
mapping = NULL,
data = NULL,
geom = "hdr_rug",
position = "identity",
...,
method = "kde",
method_y = "kde",
probs = c(0.99, 0.95, 0.8, 0.5),
xlim = NULL,
ylim = NULL,
n = 512,
na.rm = FALSE,
show.legend = TRUE,
inherit.aes = TRUE
)
geom_hdr_rug(
mapping = NULL,
data = NULL,
stat = "hdr_rug",
position = "identity",
...,
outside = FALSE,
sides = "bl",
length = unit(0.03, "npc"),
na.rm = FALSE,
show.legend = TRUE,
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, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
... |
Other arguments passed on to |
method , method_y |
Density estimator(s) to use.
By default |
probs |
Probabilities to compute highest density regions for. |
xlim , ylim |
Range to compute and draw regions. If |
n |
Resolution of grid defined by |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
stat |
The statistical transformation to use on the data for this
layer, either as a |
outside |
logical that controls whether to move the rug tassels outside of the plot area. Default is off (FALSE). You will also need to use |
sides |
A string that controls which sides of the plot the rugs appear on.
It can be set to a string containing any of |
length |
A |
Aesthetics
geom_hdr_rug understands the following aesthetics (required aesthetics are in bold):
x
y
alpha
fill
group
subgroup
Computed variables
- probs
The probability of the highest density region, specified by
probs
, corresponding to each point.
Examples
set.seed(1)
df <- data.frame(x = rnorm(100), y = rnorm(100))
# Plot marginal HDRs for bivariate data
ggplot(df, aes(x, y)) +
geom_point() +
geom_hdr_rug() +
coord_fixed()
ggplot(df, aes(x, y)) +
geom_hdr() +
geom_hdr_rug() +
coord_fixed()
# Plot HDR for univariate data
ggplot(df, aes(x)) +
geom_density() +
geom_hdr_rug()
ggplot(df, aes(y = y)) +
geom_density() +
geom_hdr_rug()
# Specify location of marginal HDRs as in ggplot2::geom_rug()
ggplot(df, aes(x, y)) +
geom_hdr() +
geom_hdr_rug(sides = "tr", outside = TRUE) +
coord_fixed(clip = "off")
# Can use same methods of density estimation as geom_hdr().
# For data with constrained support, we suggest setting method = "histogram":
ggplot(df, aes(x^2)) +
geom_histogram(bins = 30, boundary = 0) +
geom_hdr_rug(method = "histogram")
ggplot(df, aes(x^2, y^2)) +
geom_hdr(method = "histogram") +
geom_hdr_rug(method = "histogram") +
coord_fixed()