graphique
diagramme UpSet
aussi : UpSet plotIntersections 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
position sur une échelle commune; principal : taille de l'intersection
longueur; principal : taille de l'intersection
région de l'espace; principal : combinaison d'ensembles (matrice de points)
teinte; secondaire : catégorie
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
- invention (2014) Lex et al. (2014). UpSet: Visualization of Intersecting Sets. IEEE Transactions on Visualization and Computer Graphics (2 383 citations)
Paquets R
- R
UpSetR::upset(); GitHub 842 étoiles; dernier commit 2026-05; article (3 575 citations) - R
ComplexUpset::upset(); GitHub 573 étoiles; dernier commit 2025-09; article (2 343 citations) DOI de la méthode UpSet (Lex et al. 2014), cité par le paquet.
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.