Visualization VocabularyDataviz vocabulary
Diagram: bean plot
Drawing: Adrien Taudière (CC0)
ggplot2 example: bean plot
Adrien Taudière (CC0); R code ↓; data: palmerpenguins (Horst, Hill & Gorman 2020) (CC0)

chart

bean plot

also: beanplot

Mirrored density in which each observation is a short line, and the group mean a longer one.

graphique en haricots

Densité en miroir où chaque observation est un court trait, et la moyenne du groupe un trait plus long.

Proposé par Kampstra (2008) comme alternative à la boîte à moustaches ; forme française non attestée.

Classification

  • chart
  • boxes and densities › density shapes
  • distribution
  • the name evokes: food

Attestation

Scientific literature

OpenAlex: 157 papers since 1961, 13% in the last five years; mostly in Agricultural and Biological Sciences, Computer Science, Environmental Science

Seminal references

R packages

R code of the ggplot2 example

library(ggplot2)
library(dplyr)
library(palmerpenguins)

birds <- penguins |>
  filter(!is.na(bill_depth_mm)) |>
  mutate(position = as.integer(species))

means <- birds |>
  group_by(species, position) |>
  summarise(depth = mean(bill_depth_mm), .groups = "drop")

## The bean: a mirrored density; inside, a short line per penguin and a long
## one for the mean.
p <- ggplot(birds, aes(x = species, y = bill_depth_mm, fill = species)) +
  geom_violin(colour = NA, alpha = 0.25) +
  geom_segment(aes(x = position - 0.08, xend = position + 0.08, yend = bill_depth_mm, colour = species),
               linewidth = 0.3, alpha = 0.6) +
  geom_segment(data = means, aes(x = position - 0.3, xend = position + 0.3, y = depth, yend = depth),
               colour = "black", linewidth = 0.7, inherit.aes = FALSE) +
  scale_y_continuous(labels = lex_number, breaks = lex_break_breaks, expand = lex_break_expand) +
  labs(title = "Gentoo penguins have the shallowest bills",
       subtitle = "Short lines: one penguin each; long black line: the mean",
       x = NULL, y = "Bill depth (mm)",
       caption = "Data: palmerpenguins (Horst, Hill & Gorman 2020)") +
  theme_lex_viz(grid = "y", arrows = "y", break_not_zero = "y") +
  theme(legend.position = "none")

Sources (4)

1 occurrence in the corpus

Cite this entry

Stable addresshttps://dataviz.adrientaudiere.com/en/term/bean-plot.html

ReferenceTaudière Adrien. 2026. bean plot. In Visualization Vocabulary, version 1.0.0. IdEst. https://dataviz.adrientaudiere.com/en/term/bean-plot.html

BibTeX
@incollection{taudiere2026-bean-plot,
  author    = {Taudière, Adrien},
  title     = {bean plot},
  booktitle = {Visualization Vocabulary},
  year      = {2026},
  version   = {1.0.0},
  publisher = {IdEst},
  url       = {https://dataviz.adrientaudiere.com/en/term/bean-plot.html},
  note      = {CC0 1.0}
}

Page created on 2026-10-13. Text last changed on 2026-11-06. Images last changed on 2026-11-09. Numbers computed on 2026-10-22.