facet_nested_wrap()
wraps a sequence of panels onto a two-dimensional
layout, and nests grouped facets where possible.
facet_nested_wrap(
facets,
nrow = NULL,
ncol = NULL,
scales = "fixed",
axes = "margins",
remove_labels = "none",
shrink = TRUE,
labeller = "label_value",
as.table = TRUE,
drop = TRUE,
dir = "h",
strip.position = "top",
nest_line = FALSE,
resect = unit(0, "mm"),
bleed = FALSE
)
A set of variables or expressions quoted by vars()
and defining faceting groups on the rows or columns dimension.
The variables can be named (the names are passed to labeller
).
For compatibility with the classic interface, can also be a
formula or character vector. Use either a one sided formula, ~a + b
,
or a character vector, c("a", "b")
.
Number of rows and columns.
Number of rows and columns.
Should scales be fixed ("fixed"
, the default),
free ("free"
), or free in one dimension ("free_x"
,
"free_y"
)?
A character
where axes should be drawn. Either
"margins"
(default), "rows"
, "cols"
or "full"
.
Only applies when the scale is free through the scales
argument.
A character
denoting what labels should be
removed when axes are repeated and redundant. Either "none"
(default), "rows"
, "cols"
or "all"
. Only applies to
relevant position guides included with the axes
argument when scales
are fixed.
If TRUE
, will shrink scales to fit output of
statistics, not raw data. If FALSE
, will be range of raw data
before statistical summary.
A function that takes one data frame of labels and
returns a list or data frame of character vectors. Each input
column corresponds to one factor. Thus there will be more than
one with vars(cyl, am)
. Each output
column gets displayed as one separate line in the strip
label. This function should inherit from the "labeller" S3 class
for compatibility with labeller()
. You can use different labeling
functions for different kind of labels, for example use label_parsed()
for
formatting facet labels. label_value()
is used by default,
check it for more details and pointers to other options.
If TRUE
, the default, the facets are laid out like
a table with highest values at the bottom-right. If FALSE
, the
facets are laid out like a plot with the highest value at the top-right.
If TRUE
, the default, all factor levels not used in the
data will automatically be dropped. If FALSE
, all factor levels
will be shown, regardless of whether or not they appear in the data.
Direction: either "h"
for horizontal, the default, or "v"
,
for vertical.
By default, the labels are displayed on the top of
the plot. Using strip.position
it is possible to place the labels on
either of the four sides by setting strip.position = c("top",
"bottom", "left", "right")
a logical
vector of length 1, indicating whether to
draw a nesting line to indicate the nesting of variables. Control the look
of the nesting line by setting the ggh4x.facet.nestline
theme
element.
a unit
vector of length 1, indicating how much the
nesting line should be shortened.
a logical
vector of length 1, indicating whether merging
of lower-level variables is allowed when the higher-level variables are
separate. See details.
A FacetNestedWrap
ggproto object that can be added to a plot.
This function inherits the capabilities of
facet_wrap2()
.
This function only merges strips in the same row or column as they appear
through regular facet_wrap()
layout behaviour.
Hierarchies are inferred from the order of variables supplied to
rows
or cols
. The first variable is interpreted to be the
outermost variable, while the last variable is interpreted to be the
innermost variable. They display order is always such that the outermost
variable is placed the furthest away from the panels. Strips are
automatically grouped when they span a nested variable.
The bleed
argument controls whether lower-level variables are allowed
to be merged when higher-level are different, i.e. they can bleed over
hierarchies. Suppose the facet_wrap()
behaviour would be the
following:
[_1_][_2_][_2_]
[_3_][_3_][_4_]
In such case, the default bleed = FALSE
argument would result in the
following:
[_1_][___2____]
[_3_][_3_][_4_]
Whereas bleed = TRUE
would allow the following:
[_1_][___2____]
[___3____][_4_]
Other facetting functions:
facet_nested()
,
facet_wrap2()
# NOT RUN {
p <- ggplot(mpg, aes(displ, hwy)) +
geom_point()
p + facet_nested_wrap(vars(cyl, drv))
# Controlling the nest line
p + facet_nested_wrap(vars(cyl, drv), nest_line = TRUE) +
theme(ggh4x.facet.nestline = element_line(linetype = 3))
# Ignore nested hierarchies with the 'bleed' argument
p + facet_nested_wrap(vars(drv, cyl), bleed = TRUE)
# }
Run the code above in your browser using DataLab