GeomSankeynode {ggsankeyfier} | R Documentation |
Bars representing nodes in a Sankey diagram
Description
In a Sankey diagram nodes are depicted as stacked bars, possibly with
vertical spacing between them. Use geom_sankeynode()
to add nodes to
your Sankey diagram. If you combine the nodes with geom_sankeyedge()
,
make sure that both use the same position
object.
Usage
GeomSankeynode
geom_sankeynode(
mapping = NULL,
data = NULL,
stat = "sankeynode",
position = "sankey",
na.rm = FALSE,
show.legend = NA,
width = "auto",
align = c("bottom", "top", "center", "justify"),
order = c("ascending", "descending", "as_is"),
h_space = "auto",
v_space = 0,
nudge_x = 0,
nudge_y = 0,
split_nodes = FALSE,
split_tol = 0.001,
direction = c("forward", "backward"),
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 |
stat |
The statistical transformation to use on the data for this
layer, either as a |
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
width |
Width of the node ( |
align |
A |
order |
A |
h_space |
Horizontal space between split nodes ( |
v_space |
Vertical space between nodes ( |
nudge_x , nudge_y |
Horizontal and vertical adjustment to nudge items by. Can be useful for offsetting labels. |
split_nodes |
A |
split_tol |
When the relative node size (resulting source and destination edges) differs more than this fraction, the node will be displayed as two separate bars. |
direction |
One of |
inherit.aes |
If |
... |
Other arguments passed on to |
Format
An object of class GeomSankeynode
(inherits from GeomBar
, GeomRect
, Geom
, ggproto
, gg
) of length 6.
Details
This ggplot2
layer depicts the size of all connected edges as a bar. The height of
of each bar is determined by the sum of y
aesthetic in each group
. When the sum of edges
that flow to a bar differ more than split_tol
compared to the edges that flow from the
same node, a vertical split is introduced in the node.
Value
Returns a ggplot2::layer()
which can be added to a ggplot2::ggplot()
Aesthetics
geom_sankeynode()
understands the following aesthetics (required aesthetics
are in bold)
-
x
: Works for variables on a discrete scale. Might work for continuous variables but is not guaranteed. This variable is used to distinguish between stages in the Sankey diagram on the x axis. -
y
: A continuous variable representing the width of the edges in a Sankey diagram. -
group
: A discrete variable used for grouping edges to nodes in each stage. Essentially it is an identifier for the nodes. -
connector
: Indicates which side of an edge is reflected by the corresponding record. Should be one of"from"
or"to"
. -
edge_id
: A unique identifier value for each edge. This identifier is used to link specific"from"
and"to"
records in an edge (flow). fill: see
vignette("ggplot2-specs", "ggplot2")
colour: see
vignette("ggplot2-specs", "ggplot2")
linetype: see
vignette("ggplot2-specs", "ggplot2")
linewidth: see
vignette("ggplot2-specs", "ggplot2")
alpha: A variable to control the opacity of an element.
Author(s)
Pepijn de Vries
Examples
library(ggplot2)
data("ecosystem_services")
ggplot(ecosystem_services_pivot1, aes(x = stage, y = RCSES, group = node,
connector = connector, edge_id = edge_id,
fill = node)) +
geom_sankeynode(v_space = "auto") +
geom_sankeyedge(v_space = "auto")