Learn R Programming

ggsketch (version 2.0.0)

geom_sketch_chord: Sketchy chord diagram

Description

Draws a hand-drawn chord diagram: nodes are placed on a circle, each given an arc proportional to its total flow, and every weighted relation becomes a ribbon whose ends are sub-arcs on the two nodes, joined by curves through the centre. Like geom_sketch_sf(), this is a constructor that returns a list of ordinary sketch layers (roughened ribbons, rim segments and handwriting labels), so it composes with +; pair it with coord_equal() and theme_void(). No new dependencies (cf. circlize::chordDiagram()).

Usage

geom_sketch_chord(
  data,
  from,
  to,
  value,
  ...,
  gap = 0.04,
  rim_width = 0.1,
  fill_style = "solid",
  alpha = 0.65,
  label = TRUE,
  label_size = 4,
  label_colour = "grey20",
  roughness = 1,
  bowing = 1,
  n_passes = 2L,
  seed = NULL
)

Value

A list of ggplot2 layers.

Arguments

data

A data frame of weighted edges (one row per relation).

from, to

Unquoted column names giving the two endpoints of each edge.

value

Unquoted column name giving the edge weight. Default: every edge counts as 1.

...

Other arguments passed on to the ribbon layer.

gap

Angular gap between adjacent nodes, in radians. Default 0.04.

rim_width

Width of the node rim, as a fraction of the radius. Default 0.1.

fill_style

Ribbon fill style; see geom_sketch_polygon(). Default "solid".

alpha

Ribbon fill opacity. Default 0.65.

label

Draw node labels? Default TRUE.

label_size, label_colour

Label text controls.

roughness, bowing, n_passes, seed

Sketch parameters.

Details

Supply an edge table as data and name the from, to and value columns (unquoted). Ribbons are coloured by their source node; add scale_fill_sketch() (or any fill scale) to control the palette.

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_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)
trade <- data.frame(
  from  = c("A", "A", "B", "C", "C", "D"),
  to    = c("B", "C", "C", "D", "A", "B"),
  value = c(5, 3, 2, 4, 1, 6)
)
ggplot() +
  geom_sketch_chord(trade, from, to, value, seed = 1L) +
  scale_fill_sketch() +
  coord_equal() +
  theme_void()

Run the code above in your browser using DataLab