stat_binline {ggridges} | R Documentation |
Stat for histogram ridgeline plots
Description
Works like stat_bin
except that the output is a ridgeline describing the histogram rather than
a set of counts.
Usage
stat_binline(
mapping = NULL,
data = NULL,
geom = "density_ridges",
position = "identity",
...,
binwidth = NULL,
bins = NULL,
center = NULL,
boundary = NULL,
breaks = NULL,
closed = c("right", "left"),
pad = TRUE,
draw_baseline = TRUE,
na.rm = FALSE,
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 geom to use for drawing. |
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
... |
Other arguments passed on to |
binwidth |
The width of the bins. Can be specified as a numeric value
or as a function that calculates width from unscaled x. Here, "unscaled x"
refers to the original x values in the data, before application of any
scale transformation. When specifying a function along with a grouping
structure, the function will be called once per group.
The default is to use the number of bins in The bin width of a date variable is the number of days in each time; the bin width of a time variable is the number of seconds. |
bins |
Number of bins. Overridden by |
center , boundary |
bin position specifiers. Only one, |
breaks |
Alternatively, you can supply a numeric vector giving
the bin boundaries. Overrides |
closed |
One of |
pad |
If |
draw_baseline |
If |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
Examples
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Species, group = Species, fill = Species)) +
geom_density_ridges(stat = "binline", bins = 20, scale = 2.2) +
scale_y_discrete(expand = c(0, 0)) +
scale_x_continuous(expand = c(0, 0)) +
coord_cartesian(clip = "off") +
theme_ridges()
ggplot(iris, aes(x = Sepal.Length, y = Species, group = Species, fill = Species)) +
stat_binline(bins = 20, scale = 2.2, draw_baseline = FALSE) +
scale_y_discrete(expand = c(0, 0)) +
scale_x_continuous(expand = c(0, 0)) +
scale_fill_grey() +
coord_cartesian(clip = "off") +
theme_ridges() +
theme(legend.position = 'none')
library(ggplot2movies)
ggplot(movies[movies$year>1989,], aes(x = length, y = year, fill = factor(year))) +
stat_binline(scale = 1.9, bins = 40) +
scale_x_continuous(limits = c(1, 180), expand = c(0, 0)) +
scale_y_reverse(expand = c(0, 0)) +
scale_fill_viridis_d(begin = 0.3, option = "B") +
coord_cartesian(clip = "off") +
labs(title = "Movie lengths 1990 - 2005") +
theme_ridges() +
theme(legend.position = "none")
count_data <- data.frame(
group = rep(letters[1:5], each = 10),
mean = rep(1:5, each = 10)
)
count_data$group <- factor(count_data$group, levels = letters[5:1])
count_data$count <- rpois(nrow(count_data), count_data$mean)
ggplot(count_data, aes(x = count, y = group, group = group)) +
geom_density_ridges2(
stat = "binline",
aes(fill = group),
binwidth = 1,
scale = 0.95
) +
geom_text(
stat = "bin",
aes(y = group + 0.9*stat(count/max(count)),
label = ifelse(stat(count) > 0, stat(count), "")),
vjust = 1.2, size = 3, color = "white", binwidth = 1
) +
scale_x_continuous(breaks = c(0:12), limits = c(-.5, 13), expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0)) +
scale_fill_cyclical(values = c("#0000B0", "#7070D0")) +
guides(y = "none") +
coord_cartesian(clip = "off") +
theme_ridges(grid = FALSE)