Learn R Programming

ggsketch (version 2.0.0)

StatSketchWaterfall: Sketchy waterfall chart

Description

Draws a hand-drawn waterfall: each step's delta (y) floats a bar from the running total before it to the running total after it, stepping the level up and down across the categories (x), with dotted hand-drawn connectors carrying the level across the gaps. Map an optional measure aesthetic with value "total" for rows that should draw the running total from zero (e.g. a closing "Net" row) instead of a delta.

Usage

StatSketchWaterfall

GeomSketchWaterfall

geom_sketch_waterfall( mapping = NULL, data = NULL, stat = "sketch_waterfall", position = "identity", ..., width = 0.62, fill_increase = "#7fa87f", fill_decrease = "#b56b6f", fill_total = "#8391a7", connectors = TRUE, connector_colour = "grey40", colour = "grey25", fill_style = "hachure", roughness = 1, bowing = 1, n_passes = 2L, seed = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE )

Value

A ggplot2 layer object.

Arguments

mapping

Aesthetic mappings created by ggplot2::aes(). Requires x (step, usually a factor in ledger order) and y (the delta); optionally measure ("relative" or "total" per row).

data

Data to display.

stat

Statistical transformation. Default "sketch_waterfall".

position

Position adjustment. Default "identity".

...

Other arguments passed on to the layer.

width

Bar width in x units. Default 0.62.

fill_increase, fill_decrease, fill_total

Bar fills by direction. Set any to NULL to map fill yourself.

connectors

Draw the dotted level connectors? Default TRUE.

connector_colour

Connector colour. Default "grey40".

colour

Bar outline colour. Default "grey25".

fill_style

Bar fill style; see geom_sketch_rect(). Default "hachure".

roughness, bowing, n_passes, seed

Sketch parameters.

na.rm

Remove missing values silently? Default FALSE.

show.legend

Logical; include in legend?

inherit.aes

Override default aesthetics?

Details

Bars are coloured by direction (fill_increase / fill_decrease / fill_total); set any of them to NULL and map fill yourself (the stat exposes the direction as after_stat(change)).

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, 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()

Examples

Run this code
library(ggplot2)
ledger <- data.frame(
  step  = factor(c("Start", "Sales", "Refunds", "Costs", "Tax", "Net"),
                 levels = c("Start", "Sales", "Refunds", "Costs", "Tax",
                            "Net")),
  delta = c(120, 80, -25, -60, -18, 0),
  kind  = c("relative", "relative", "relative", "relative", "relative",
            "total")
)
ggplot(ledger, aes(step, delta, measure = kind)) +
  geom_sketch_waterfall(seed = 1L) +
  theme_sketch()

Run the code above in your browser using DataLab