The hand-drawn answer to ggrepel: text (geom_sketch_text_repel()) or
boxed labels (geom_sketch_label_repel()) that are nudged apart so they do
not overlap one another or cover the data points, each joined back to its
anchor by a roughened leader line when it has moved. Placement is solved at
draw time by repel_layout() in device space, so it is even on any panel
aspect.
GeomSketchTextRepelGeomSketchLabelRepel
geom_sketch_text_repel(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
roughness = 1,
bowing = 0.6,
n_passes = 2L,
seed = NULL,
padding = 0.07,
corner_radius = 0.3,
box_padding = 0.1,
point_padding = 0.05,
min_segment = 0.06,
max_iter = 2000L,
family = NULL,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = TRUE
)
geom_sketch_label_repel(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
roughness = 1,
bowing = 0.6,
n_passes = 2L,
seed = NULL,
padding = 0.09,
corner_radius = 0.3,
box_padding = 0.12,
point_padding = 0.05,
min_segment = 0.06,
max_iter = 2000L,
family = NULL,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = TRUE
)
A ggplot2 layer object.
Standard layer
arguments. Requires x, y and label aesthetics.
Other arguments passed on to the layer.
Sketch parameters for the leader / box.
Text clearance inside the box (and around bare text), inches.
Box corner rounding (label variant). Fraction of half-side; default 0.3.
Extra clearance kept between boxes and around the anchor points, in inches.
Shortest leader drawn, in inches; below this no leader is shown (the label is close enough to its anchor).
Repel solver iteration cap. Default 2000.
Font family for the text. Defaults to the theme's text family.
Drop missing values silently? Default FALSE.
Unlike most ggsketch geoms the glyphs are not roughened (the sketch of text is
a handwriting font, ADR-0007); the leader and the label box are. Like
geom_sketch_text(), family defaults to the theme's text family.
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,
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_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)
df <- head(mtcars, 12)
df$name <- rownames(df)
ggplot(df, aes(wt, mpg, label = name)) +
geom_sketch_point(seed = 1L) +
geom_sketch_text_repel(family = "", seed = 1L) +
theme_sketch()
Run the code above in your browser using DataLab