Draws a hand-drawn streamgraph (a.k.a. ThemeRiver): a stacked area chart whose
baseline floats so the coloured bands flow around a moving centre, good for
showing how a few categories rise and fall over time. Map x (usually time),
y (value), and fill (category). Values are stacked and the baseline offset
by StatSketchStream; each band is drawn as a roughened ribbon, so it takes
any fill_style (including "watercolor"). No new dependencies
(cf. ggstream::geom_stream()).
StatSketchStreamgeom_sketch_streamgraph(
mapping = NULL,
data = NULL,
stat = "sketch_stream",
position = "identity",
...,
offset = "silhouette",
fill_style = "hachure",
roughness = 1,
bowing = 1,
n_passes = 2L,
seed = NULL,
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE
)
A ggplot2 layer object.
Aesthetic mappings created by ggplot2::aes(). Requires x
and y; usually map fill (or group) to the category.
Data to display.
Statistical transformation. Default "sketch_stream".
Position adjustment. Default "identity".
Other arguments passed on to the layer.
Baseline placement: "silhouette" (centred, the classic
streamgraph, default), "zero" (a normal stacked area), or "wiggle"
(minimises the overall slope).
Band fill style; see geom_sketch_ribbon(). Default
"hachure".
Sketch parameters.
Remove missing values silently? Default FALSE.
Logical; include in legend?
Override default aesthetics?
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,
StatSketchTreemap,
StatSketchWaffle,
StatSketchWaterfall,
annotate_sketch(),
annotate_sketch_arrow(),
annotate_sketch_callout(),
annotate_sketch_highlight(),
geom_sketch_alluvial(),
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()
library(ggplot2)
set.seed(1)
df <- expand.grid(t = 1:12, grp = c("a", "b", "c", "d"))
df$v <- abs(sin(df$t / 3 + match(df$grp, letters)) + 1.2) * 5
ggplot(df, aes(t, v, fill = grp)) +
geom_sketch_streamgraph(seed = 1L) +
theme_sketch()
Run the code above in your browser using DataLab