Commencer par un diagramme en barres simple
Un diagramme en barres simple transforme un vecteur numérique en rectangles dont les hauteurs sont proportionnelles aux valeurs fournies.
Graphiques R · Diagramme en barres
Des exemples pratiques, du graphique simple en R de base aux barres groupées, empilées, interactives, ordonnées, proportionnelles ou assorties d’intervalles d’incertitude.
Les diagrammes en barres comparent des quantités entre catégories distinctes. La variante adaptée dépend de votre objectif : comparaison simple, noms de catégories lisibles, composition des sous-groupes, comparaison côte à côte ou exploration interactive.
Un diagramme en barres simple transforme un vecteur numérique en rectangles dont les hauteurs sont proportionnelles aux valeurs fournies.

La fonction barplot() de R de base nécessite seulement un vecteur numérique. Elle renvoie sans les afficher les positions centrales des barres, réutilisables pour ajouter des annotations.
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, main = "Basic barplot", ylab = "Value")La couleur permet de distinguer les barres, de souligner les catégories ou d’établir une identité visuelle cohérente entre plusieurs figures.

Utilisez l’argument col pour le remplissage et border pour le contour. Une seule couleur sobre est souvent plus claire lorsque toutes les barres appartiennent à la même série.
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, col = "#2563eb", border = NA,
main = "Barplot with color", ylab = "Value")Un diagramme en barres horizontales place les catégories sur l’axe vertical et mesure les valeurs de gauche à droite.

Les barres horizontales sont particulièrement adaptées lorsque les noms des catégories sont longs ou que leur classement constitue le message principal.
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, horiz = TRUE, col = "#2563eb",
border = NA, xlab = "Value")Les libellés des catégories indiquent ce que représente chaque barre et rendent la comparaison interprétable.

Le vecteur names.arg doit avoir la même longueur et le même ordre que les valeurs. Les titres des axes doivent préciser la mesure et, si nécessaire, son unité.
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
groups <- LETTERS[1:5]
barplot(values, names.arg = groups, col = "#2563eb",
border = NA, ylab = "Value")Un diagramme en barres empilées divise chaque barre en segments, montrant à la fois le total et la contribution de chaque sous-groupe.

Transmettez une matrice à barplot(). Chaque ligne devient un segment coloré. Une légende est indispensable, car la couleur identifie les sous-groupes.
data <- rbind(
"Group 1" = c(0.2, 0.3, 0.7, 0.1, 0.3),
"Group 2" = c(0.4, 0.1, 0.1, 0.2, 0.3)
)
barplot(data, col = c("#2563eb", "#172554"), border = NA)
legend("topright", legend = rownames(data),
fill = c("#2563eb", "#172554"), bty = "n")Un diagramme en barres groupées place les barres des sous-groupes côte à côte pour faciliter les comparaisons au sein des catégories et entre elles.

Indiquez beside = TRUE lorsque vous transmettez une matrice. Les barres groupées soulignent les différences entre sous-groupes ; les barres empilées mettent en évidence la composition et les totaux.
data <- rbind(
"Group 1" = c(0.2, 0.3, 0.7, 0.1, 0.3),
"Group 2" = c(0.4, 0.1, 0.1, 0.2, 0.3)
)
barplot(data, col = c("#2563eb", "#172554"),
beside = TRUE, border = NA)
legend("topright", legend = rownames(data),
fill = c("#2563eb", "#172554"), bty = "n")ggplot2 crée des diagrammes en barres par couches, en séparant les données, les correspondances visuelles, la géométrie, les libellés et le thème.

Utilisez geom_col() lorsque les hauteurs des barres figurent déjà dans les données. La fonction voisine geom_bar() calcule par défaut les effectifs des catégories.
install.packages("ggplot2") # Run once
library(ggplot2)
data_ggp <- data.frame(
group = LETTERS[1:5],
value = c(0.40, 0.75, 0.20, 0.60, 0.50)
)
ggplot(data_ggp, aes(x = group, y = value)) +
geom_col(fill = "#2563eb") +
labs(title = "Barplot with ggplot2", x = "Group", y = "Value") +
theme_minimal()Un diagramme en barres plotly est interactif : on peut consulter les valeurs dans les infobulles, zoomer, déplacer la vue et utiliser la barre d’outils du graphique.

plot_ly() crée un composant HTML plutôt qu’une image statique de R de base. L’aperçu présente le graphique initial ; l’exécution du code active les interactions.
install.packages("plotly") # Run once
library(plotly)
group <- LETTERS[1:5]
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
plot_ly(x = group, y = values, type = "bar",
marker = list(color = "#636efa")) %>%
layout(title = "Interactive barplot",
xaxis = list(title = "Group"),
yaxis = list(title = "Value"))Un diagramme ordonné classe les catégories selon leur valeur pour rendre immédiatement visibles les classements et les écarts importants.

Triez les valeurs nommées avant de tracer le graphique. L’ordre décroissant convient aux classements ; l’ordre croissant peut faciliter des comparaisons progressives.
values <- c(A = 0.40, B = 0.75, C = 0.20, D = 0.60, E = 0.50)
ordered_values <- sort(values, decreasing = TRUE)
barplot(ordered_values, col = "#2563eb", border = NA,
main = "Bars ordered by value", ylab = "Value")Les étiquettes de valeurs donnent les quantités exactes sans obliger le lecteur à les estimer à partir de l’axe.

Conservez les positions centrales renvoyées par barplot(), puis transmettez ces abscisses à text(). Augmentez la limite de l’axe vertical pour réserver de l’espace au-dessus des barres.
values <- c(A = 0.40, B = 0.75, C = 0.20, D = 0.60, E = 0.50)
midpoints <- barplot(values, col = "#2563eb", border = NA,
ylim = c(0, 0.9))
text(midpoints, values + 0.04, labels = values,
font = 2, col = "#172554")Un diagramme empilé à 100 % ramène chaque barre au même total et compare les parts relatives des sous-groupes.

Divisez chaque colonne de la matrice par son total avant de tracer le graphique. Cela souligne les parts relatives en supprimant volontairement les différences de totaux absolus.
data <- rbind(
"Group 1" = c(0.2, 0.3, 0.7, 0.1, 0.3),
"Group 2" = c(0.4, 0.1, 0.1, 0.2, 0.3)
)
proportions <- sweep(data, 2, colSums(data), "/")
barplot(proportions, col = c("#2563eb", "#172554"),
border = NA, ylab = "Share")
legend("topright", legend = rownames(proportions),
fill = c("#2563eb", "#172554"), bty = "n")Les barres d’erreur ajoutent une information sur l’incertitude, comme les erreurs-types ou les intervalles de confiance, aux valeurs résumées par les barres.

Tracez d’abord les barres, conservez leurs positions centrales, puis ajoutez des flèches avec embouts entre les bornes inférieure et supérieure. Précisez toujours ce que représentent les intervalles.
means <- c(A = 5.2, B = 6.8, C = 4.4, D = 7.1, E = 5.9)
errors <- c(0.5, 0.7, 0.4, 0.6, 0.5)
midpoints <- barplot(means, col = "#2563eb", border = NA,
ylim = c(0, 8.3), ylab = "Mean")
arrows(midpoints, means - errors, midpoints, means + errors,
angle = 90, code = 3, length = 0.06, lwd = 2)