Learn R Programming

ggsketch (version 2.0.0)

geom_sketch_alluvial: Sketchy alluvial / Sankey diagram

Description

Draws a hand-drawn alluvial diagram: two or more categorical axes, each a stack of strata (boxes), connected by flows (ribbons) whose thickness is the frequency of each category combination. Like geom_sketch_chord() it is a constructor that returns a list of ordinary sketch layers (roughened strata, roughened flow ribbons with smooth S-curved edges, and stratum labels), so it composes with + and any fill scale. It draws in ordinary x/y space; pair it with theme_void() or theme_sketch(). No new dependencies (cf. ggalluvial, ggsankey).

Usage

geom_sketch_alluvial(
  data,
  axes,
  value = NULL,
  fill = NULL,
  ...,
  box_width = 0.18,
  stratum_gap = 0.02,
  fill_style = "solid",
  alpha = 0.7,
  strata_fill = "grey85",
  label = TRUE,
  label_size = 3.5,
  label_colour = "grey20",
  roughness = 1,
  bowing = 1,
  n_passes = 2L,
  seed = NULL
)

Value

A list of ggplot2 layers.

Arguments

data

A wide data frame: one column per axis, one row per observation (or per group, with a value weight).

axes

Character vector of column names to use as axes, in order (at least two).

value

Optional column name giving each row's weight (NULL = 1 each).

fill

Optional column name whose category colours each flow (NULL = the first axis). Add scale_fill_sketch() or any fill scale to style it.

...

Other arguments passed on to the flow layer.

box_width

Width of the stratum boxes in x units. Default 0.18.

stratum_gap

Vertical gap between adjacent strata, as a fraction of the axis total. Default 0.02; 0 stacks them flush.

fill_style

Flow fill style; see geom_sketch_polygon(). Default "solid".

alpha

Flow opacity. Default 0.7.

strata_fill

Fill colour of the stratum boxes. Default "grey85".

label

Draw stratum labels? Default TRUE.

label_size, label_colour

Label text controls.

roughness, bowing, n_passes, seed

Sketch parameters.

See Also

Other sketch-geoms: GeomSketchAbline, GeomSketchArrow, GeomSketchBoxplot, GeomSketchBracket, GeomSketchCallout, GeomSketchChicklet, GeomSketchCol, GeomSketchContourFilled, GeomSketchCurve, GeomSketchDotplot, GeomSketchDumbbell, GeomSketchEdge, GeomSketchEllipse, GeomSketchEngrave, GeomSketchGantt, GeomSketchHex, GeomSketchLine, GeomSketchLinerange, GeomSketchLollipop, GeomSketchMarkCircle, GeomSketchMarkHull, GeomSketchPath, GeomSketchPoint, GeomSketchPolygon, GeomSketchRect, GeomSketchRibbon, GeomSketchRug, GeomSketchSegment, GeomSketchSfPolygon, GeomSketchSlope, GeomSketchSmooth, GeomSketchSpoke, GeomSketchTextRepel, GeomSketchViolin, StatSketchBeeswarm, StatSketchCalendar, StatSketchDensityRidges, StatSketchFunnel, StatSketchPie, StatSketchPyramid, StatSketchRadar, StatSketchStream, StatSketchTreemap, StatSketchWaffle, StatSketchWaterfall, annotate_sketch(), annotate_sketch_arrow(), annotate_sketch_callout(), annotate_sketch_highlight(), geom_sketch_arc_diagram(), geom_sketch_bin2d(), geom_sketch_bump(), geom_sketch_chord(), geom_sketch_contour(), geom_sketch_count(), geom_sketch_dendrogram(), geom_sketch_density(), geom_sketch_density2d(), geom_sketch_ecdf(), geom_sketch_function(), geom_sketch_histogram(), geom_sketch_jitter(), geom_sketch_marimekko(), geom_sketch_mosaic(), geom_sketch_parallel(), geom_sketch_qq(), geom_sketch_quantile(), geom_sketch_rose(), geom_sketch_sunburst(), geom_sketch_text(), sketch_graph()

Examples

Run this code
library(ggplot2)
df <- as.data.frame(Titanic)
ggplot() +
  geom_sketch_alluvial(df, axes = c("Class", "Sex", "Survived"),
                       value = "Freq", seed = 1L) +
  scale_fill_sketch() +
  theme_void()

Run the code above in your browser using DataLab