Visualization VocabularyDataviz vocabulary
Schéma : diagramme UpSet
Dessin : Adrien Taudière (CC0)
Exemple ggplot2 : diagramme UpSet
Adrien Taudière (CC0); code R ↓; données : gapminder (Bryan 2025) (CC BY 4.0)

graphique

diagramme UpSet

aussi : UpSet plot

Intersections d'ensembles montrées en barres plutôt qu'en cercles superposés.

UpSet plot

Set intersections shown as bars rather than overlapping circles.

Reste lisible au-delà de quatre ensembles, là où le diagramme de Venn décroche.

Classification

  • graphique
  • ensembles › matrices d'ensembles
  • partie d'un tout

Canaux

Attestation

Littérature scientifique

OpenAlex : 291 articles depuis 2017, dont 85 % ces cinq dernières années; surtout en Medicine, Biochemistry, Genetics and Molecular Biology, Computer Science; Wikidata

Références séminales

Paquets R

Code R de l'exemple ggplot2

library(ggplot2)
library(dplyr)
library(gapminder)
library(ComplexUpset)
library(patchwork)

## Four sets of countries in 2007; each bar counts the countries in exactly
## that combination of sets.
start <- gapminder |>
  filter(year == 1952) |>
  select(country, life_1952 = lifeExp)
countries <- gapminder |>
  filter(year == 2007) |>
  left_join(start, by = "country") |>
  transmute(`Life expectancy > 75` = lifeExp > 75,
            `GDP per capita > $20 000` = gdpPercap > 20000,
            `Population > 50 million` = pop > 5e7,
            `Gained 25+ years since 1952` = lifeExp - life_1952 > 25)

p <- upset(countries, names(countries), name = NULL, width_ratio = 0.3, min_size = 1,
           base_annotations = list(Countries = intersection_size(fill = "#9b2367", text = list(size = 2.6, family = "Quicksand"))),
           set_sizes = upset_set_size(geom = geom_bar(fill = "#535353", width = 0.6)) + ylab("Countries"),
           matrix = intersection_matrix(geom = geom_point(size = 2), segment = geom_segment(linewidth = 0.4)),
           themes = upset_default_themes(text = element_text(family = "Quicksand", colour = "#535353"))) +
  ## The plot is a patchwork of three: titles and theme go to the whole.
  plot_annotation(title = "Long life and wealth form the largest intersection",
                  subtitle = "142 countries in 2007, in four sets",
                  caption = "Data: Gapminder, via the gapminder R package",
                  theme = theme_lex_viz(grid = "", arrows = "")) &
  ## Every panel of the patchwork without a background, not only the last.
  theme(plot.background = element_rect(fill = NA, colour = NA))

Sources (3)

Citer cette fiche

Adresse stablehttps://dataviz.adrientaudiere.com/terme/upset-plot.html

RéférenceTaudière Adrien. 2026. diagramme UpSet. Dans Visualization Vocabulary, version 1.0.0. IdEst. https://dataviz.adrientaudiere.com/terme/upset-plot.html

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

Fiche créée le 13/10/2026. Texte modifié le 12/11/2026. Images modifiées le 02/11/2026. Chiffres calculés le 22/10/2026.