Draws a hand-drawn arc diagram: nodes are placed along a horizontal line and
every weighted relation is a roughened semicircle arching over (or under) the
axis between its two endpoints. Like geom_sketch_chord() but linear, it is a
constructor that returns a list of ordinary sketch layers (arcs, node points
and handwriting labels), so it composes with +; pair it with theme_void()
or theme_sketch(). Edges are coloured by their source node; add
scale_colour_sketch() (or any colour scale). No new dependencies.
Usage
geom_sketch_arc_diagram(
data,
from,
to,
value,
...,
nodes = NULL,
side = c("top", "bottom"),
node_size = 3,
node_colour = "grey25",
max_linewidth = 2,
alpha = 0.7,
label = TRUE,
label_size = 3.5,
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 (and node size is the edge count).
- ...
Other arguments passed on to the arc layer.
- nodes
Optional character vector fixing the node order along the axis (default: sorted unique endpoints).
- side
Which way the arcs bow:
"top"(default) or"bottom".- node_size, node_colour
Node-point size (scaled by incident weight) and colour.
- max_linewidth
Arc stroke width at the heaviest edge (lighter edges scale down). Default 2.
- alpha
Arc opacity. Default 0.7.
- label
Draw node labels? Default
TRUE.- label_size, label_colour
Label text controls.
- 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_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_sunburst(),
geom_sketch_text(),
sketch_graph()
Examples
library(ggplot2)
rel <- data.frame(
from = c("A", "A", "B", "C", "C", "D"),
to = c("B", "C", "C", "D", "E", "E"),
value = c(3, 1, 2, 4, 2, 1)
)
ggplot() +
geom_sketch_arc_diagram(rel, from, to, value, seed = 1L) +
scale_colour_sketch() +
theme_void()
