Learn R Programming

SciencesPo (version 1.4.1)

Waffleplot: Make waffle (square pie) charts

Description

Given a named vector, this function will return a ggplot object that represents a waffle chart of the values. The individual values will be summed up and each that will be the total number of squares in the grid.

Usage

Waffleplot(parts, rows = 10, xlab = NULL, title = NULL, colors = NA, size = 2, legend_pos = "right", flip = FALSE, reverse = FALSE, equal = TRUE, pad = 0, use_glyph = FALSE, glyph_size = 12)

Arguments

parts
named vector of values to use for the chart
rows
number of rows of blocks
xlab
text for below the chart. Highly suggested this be used to give the "1 sq == xyz" relationship if it's not obvious
title
chart title
colors
exactly the number of colors as values in parts. If omitted, Color Brewer "Set2" colors are used.
size
width of the separator between blocks (defaults to 2)
legend_pos
position of legend
flip
flips x & y axes
reverse
reverses the order of the data
equal
by default, waffle uses coord_equal; this can cause layout problems, so you an use this to disable it if you are using ggsave or knitr to control output sizes (or manually sizing the chart)
pad
how many blocks to right-pad the grid with
use_glyph
use specified FontAwesome glyph
glyph_size
size of the FontAwesome font

Examples

Run this code
tiles <- c(One=80, Two=30, Three=20, Four=10)
Waffleplot(tiles, rows=8)

Senate <- c(`Male (44%)`=44, `Female (56%)`=56)
Waffleplot(Senate, rows=10, size=0.5, colors=c("#af9139", "#544616"))

Run the code above in your browser using DataLab