Skip to contents

Draws a hand-drawn mosaic plot of two categorical variables: the width of each column is the marginal frequency of x, and the height of each tile within a column is the conditional frequency of y, so every tile's area is the joint frequency. Like geom_sketch_chord() it is a constructor that returns a list of ordinary sketch layers (roughened tiles coloured by y, plus column labels), so it composes with + and any fill scale; pair it with theme_void() or theme_sketch(). No new dependencies (cf. graphics::mosaicplot(), ggmosaic).

Usage

geom_sketch_mosaic(
  data,
  x,
  y,
  value = NULL,
  ...,
  fill_by = c("y", "x"),
  gap = 0.012,
  fill_style = "solid",
  alpha = 1,
  label = TRUE,
  label_size = 3.5,
  label_colour = "grey20",
  roughness = 1,
  bowing = 1,
  n_passes = 2L,
  seed = NULL
)

Arguments

data

A data frame.

x, y

Unquoted column names: x splits the columns, y splits each column vertically.

value

Optional column name giving each row's weight (NULL = 1 each).

...

Other arguments passed on to the tile layer.

fill_by

Which variable colours the tiles: "y" (default) or "x".

gap

Gap between columns and rows, in unit-square fractions. Default 0.012.

fill_style

Tile fill style; see geom_sketch_rect(). Default "solid".

alpha

Tile opacity. Default 1.

label

Draw column labels? Default TRUE.

label_size, label_colour

Label text controls.

roughness, bowing, n_passes, seed

Sketch parameters.

Value

A list of ggplot2 layers.

Examples

library(ggplot2)
df <- as.data.frame(Titanic)
ggplot() +
  geom_sketch_mosaic(df, x = Class, y = Survived, value = Freq, seed = 1L) +
  scale_fill_sketch() +
  theme_void()