Skip to contents

Draws points as small roughened ellipses, giving each a hand-drawn feel. Equivalent to geom_point() with a sketch aesthetic.

Usage

GeomSketchPoint

geom_sketch_point(
  mapping = NULL,
  data = NULL,
  stat = "identity",
  position = "identity",
  ...,
  roughness = NULL,
  bowing = NULL,
  n_passes = 2L,
  seed = NULL,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

Format

An object of class GeomSketchPoint (inherits from Geom, ggproto, gg) of length 6.

Arguments

mapping

Set of aesthetic mappings. Supports x, y, colour, size, alpha, and roughness.

data

Data to display.

stat

Statistical transformation (default "identity").

position

Position adjustment (default "identity").

...

Other arguments passed on to the layer.

roughness

Non-negative roughness parameter (0 = straight). Default 1.

bowing

Non-negative bowing multiplier. Default 1.

n_passes

Number of stroke passes for the double-stroke effect. Default 2.

seed

Integer seed for reproducibility. NULL uses getOption("ggsketch.seed", 1L).

na.rm

If FALSE (default), missing values are removed with a warning.

show.legend

Logical. Should this layer be included in the legend?

inherit.aes

If FALSE, override the default aesthetics.

Details

Unlike the other geoms, roughness is a mappable aesthetic here: set it to a constant (geom_sketch_point(roughness = 2)) so every point wobbles the same amount, or map it to a variable (aes(roughness = z)) so each point wobbles more or less. A mapped variable is rescaled to a legible roughness band by scale_roughness_continuous() (the default range is c(0.01, 0.75)), exactly as scale_size() rescales to a size range. Wrap values in base::I() to use them as raw roughness instead.

Examples

library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) +
  geom_sketch_point(roughness = 0.5, seed = 1L)


# A constant sets how wobbly every point is.
ggplot(mtcars, aes(wt, mpg)) +
  geom_sketch_point(roughness = 0, size = 3, seed = 1L)    # clean circles

ggplot(mtcars, aes(wt, mpg)) +
  geom_sketch_point(roughness = 1.5, size = 3, seed = 1L)  # very sketchy


# Map roughness to a variable: rescaled to c(0.01, 0.75) by default.
ggplot(mtcars, aes(wt, mpg, roughness = hp)) +
  geom_sketch_point(size = 3, seed = 1L)