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
)Arguments
- mapping
Aesthetic mappings created by
ggplot2::aes(). Requiresx(the stage value) andy(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
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()
