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.
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
)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 (and node size is the edge count).
Other arguments passed on to the arc layer.
Optional character vector fixing the node order along the axis (default: sorted unique endpoints).
Which way the arcs bow: "top" (default) or "bottom".
Node-point size (scaled by incident weight) and colour.
Arc stroke width at the heaviest edge (lighter edges scale down). Default 2.
Arc opacity. Default 0.7.
Draw node labels? Default TRUE.
Label text controls.
Sketch parameters.
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()
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()
Run the code above in your browser using DataLab