Draws a hand-drawn sunburst: a hierarchy rendered as nested rings of annular
sectors. The columns named in levels define the hierarchy outermost-to-
innermost (levels[1] is the inner root ring); each deeper ring splits its
parent's angular span by the children's summed value, so a child always
nests inside its parent. Like geom_sketch_chord() it is a constructor
returning a list of ordinary sketch layers (roughened annular sectors plus
optional labels), so it composes with +; pair it with coord_equal() and
theme_void(), and add scale_fill_sketch() (or any fill scale) to colour
it. Reuses no new dependencies (cf. sunburstR, plotly).
Usage
geom_sketch_sunburst(
data,
levels,
value = NULL,
...,
r0 = 0.15,
ring_width = NULL,
fill_by = c("root", "self", "depth"),
fill_style = "solid",
alpha = 0.9,
colour = "grey30",
label = FALSE,
label_size = 3,
label_colour = "grey20",
min_label_angle = 0.15,
roughness = 1,
bowing = 1,
n_passes = 2L,
seed = NULL
)Arguments
- data
A data frame, one row per observation (or per leaf).
- levels
Character vector of column names giving the hierarchy, from the inner root ring outward (at least one).
- value
Optional column name giving the leaf weight (
NULL= every row counts as 1).- ...
Other arguments passed on to the sector layer.
- r0
Radius of the central hole, in the unit circle. Default 0.15.
- ring_width
Radial width of each ring.
NULL(default) divides the spacer0..1evenly across the levels.- fill_by
What the sector fill encodes:
"root"(default, the top-level ancestor - the classic sunburst look),"self"(each node's own label), or"depth"(the ring number).- fill_style
Sector fill style; see
geom_sketch_polygon(). Default"solid".- alpha
Sector fill opacity. Default 0.9.
- colour
Sector outline colour. Default
"grey30".- label
Draw a label on each sector? Default
FALSE(sunbursts get busy; only sectors with a wide enough angle are labelled).- label_size, label_colour
Label text controls.
- min_label_angle
Minimum angular span (radians) a sector needs before it is labelled. Default 0.15.
- 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_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_text(),
sketch_graph()
Examples
library(ggplot2)
df <- data.frame(
region = c("West", "West", "West", "East", "East", "East"),
dept = c("Sales", "Sales", "Eng", "Sales", "Eng", "Eng"),
team = c("A", "B", "C", "D", "E", "F"),
n = c(4, 2, 6, 3, 5, 1)
)
ggplot() +
geom_sketch_sunburst(df, levels = c("region", "dept", "team"),
value = "n", seed = 1L) +
scale_fill_sketch() +
coord_equal() +
theme_void()
