Skip to contents

Draws a hand-drawn radar chart: each series is a closed polygon over evenly spaced angular axes, with a roughened web (concentric rings, radial spokes, and axis labels) drawn behind. Map axis (the variable that becomes each spoke, usually a factor), value (its magnitude), and group (the series); map colour/fill to the series too. Values are scaled to a common unit radius (rmax), and each polygon takes any fill_style (including "watercolor"). No new dependencies (cf. ggradar, fmsb::radarchart()).

Usage

StatSketchRadar

GeomSketchRadar

geom_sketch_radar(
  mapping = NULL,
  data = NULL,
  stat = "sketch_radar",
  position = "identity",
  ...,
  rmax = NULL,
  fill_style = "hachure",
  hachure_angle = 45,
  hachure_gap = NULL,
  fill_weight = 0.5,
  n_rings = 4L,
  grid_colour = "grey75",
  label_size = 3.2,
  label_colour = "grey30",
  label_family = NULL,
  roughness = 1,
  bowing = 1,
  n_passes = 2L,
  seed = NULL,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

Arguments

mapping

Aesthetic mappings created by ggplot2::aes(). Requires axis and value; usually also map group (and colour/fill) to the series.

data

Data to display.

stat

Statistical transformation. Default "sketch_radar".

position

Position adjustment. Default "identity".

...

Other arguments passed on to the layer.

rmax

Value mapped to the outer ring (NULL = the data maximum).

fill_style

Polygon fill style; see geom_sketch_polygon(). Default "hachure".

hachure_angle, hachure_gap, fill_weight

Fill controls; see geom_sketch_polygon().

n_rings

Number of concentric grid rings. Default 4.

grid_colour

Colour of the web (rings + spokes). Default "grey75".

label_size, label_colour, label_family

Axis-label text controls.

roughness, bowing, n_passes, seed

Sketch parameters.

na.rm

Remove missing values silently? Default FALSE.

show.legend

Logical; include in legend?

inherit.aes

Override default aesthetics?

Value

A ggplot2 layer object.

Details

Like geom_sketch_pie(), the chart lives in its own square coordinate space, so pair it with coord_equal() and theme_void() (or theme_sketch()).

Examples

library(ggplot2)
skills <- data.frame(
  axis = rep(c("Speed", "Power", "Range", "Control", "Stamina"), 2),
  value = c(8, 6, 9, 5, 7, 5, 9, 4, 8, 6),
  who = rep(c("A", "B"), each = 5)
)
ggplot(skills, aes(axis = axis, value = value, group = who,
                   colour = who, fill = who)) +
  geom_sketch_radar(alpha = 0.3, seed = 1L) +
  coord_equal() +
  theme_void()