Learn R Programming

ggsketch (version 2.0.0)

StatSketchFunnel: Sketchy funnel chart

Description

Draws a hand-drawn funnel: one horizontal bar per stage, centred on zero, whose width is the stage's value (x), so the shrinking bars read as drop-off down the stages (y). Translucent trapezoids connect each stage to the next. Put the first stage at the top by ordering the y factor levels accordingly (or add scale_y_discrete(limits = rev)); hide the mirrored x axis with theme(axis.text.x = element_blank()) or relabel it with scale_x_continuous(labels = abs).

Usage

StatSketchFunnel

GeomSketchFunnel

geom_sketch_funnel( mapping = NULL, data = NULL, stat = "sketch_funnel", position = "identity", ..., bar_width = 0.7, connectors = TRUE, connector_alpha = 0.3, 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 (the stage value) and y (the stage).

data

Data to display.

stat

Statistical transformation. Default "sketch_funnel".

position

Position adjustment. Default "identity".

...

Other arguments passed on to the layer.

bar_width

Bar thickness in y units. Default 0.7.

connectors

Draw the trapezoid connectors? Default TRUE.

connector_alpha

Connector translucency. Default 0.3.

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?

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, StatSketchPie, StatSketchPyramid, StatSketchRadar, StatSketchStream, 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()

Examples

Run this code
library(ggplot2)
funnel <- data.frame(
  stage = factor(c("Visited", "Signed up", "Activated", "Paid"),
                 levels = rev(c("Visited", "Signed up", "Activated",
                                "Paid"))),
  n     = c(1200, 460, 210, 80)
)
ggplot(funnel, aes(n, stage, fill = stage)) +
  geom_sketch_funnel(seed = 1L, show.legend = FALSE) +
  scale_x_continuous(labels = abs) +
  theme_sketch()

Run the code above in your browser using DataLab