Learn R Programming

ggsketch (version 2.0.0)

geom_sketch_sunburst: Sketchy sunburst (hierarchy) chart

Description

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
)

Value

A list of ggplot2 layers.

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 space r0..1 evenly 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

Run this code
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()

Run the code above in your browser using DataLab