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()).
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
)A list of ggplot2 layers.
A data frame of weighted edges (one row per relation).
Unquoted column names giving the two endpoints of each edge.
Unquoted column name giving the edge weight. Default: every edge counts as 1.
Other arguments passed on to the ribbon layer.
Angular gap between adjacent nodes, in radians. Default 0.04.
Width of the node rim, as a fraction of the radius. Default 0.1.
Ribbon fill style; see geom_sketch_polygon(). Default
"solid".
Ribbon fill opacity. Default 0.65.
Draw node labels? Default TRUE.
Label text controls.
Sketch parameters.
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.
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()
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