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
)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
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()
