Graphiques R · Diagramme en barres

Concevoir des diagrammes en barres clairs dans R

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.

12 exemplesCode R reproductible
Avant de commencer

Une famille de graphiques, plusieurs objectifs d’analyse

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.

Exemples
12
Niveaux
Débutant + Intermédiaire
01
Exemple 01R de baseDébutant

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.

Commencer par un diagramme en barres simple : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, main = "Basic barplot", ylab = "Value")
02
Exemple 02R de baseDébutant

Utiliser la couleur efficacement

La couleur permet de distinguer les barres, de souligner les catégories ou d’établir une identité visuelle cohérente entre plusieurs figures.

Utiliser la couleur efficacement : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, col = "#2563eb", border = NA,
        main = "Barplot with color", ylab = "Value")
03
Exemple 03R de baseDébutant

Passer aux barres horizontales

Un diagramme en barres horizontales place les catégories sur l’axe vertical et mesure les valeurs de gauche à droite.

Passer aux barres horizontales : exemple généré dans R
Résultat de l’exemple généré dans R.

Les barres horizontales sont particulièrement adaptées lorsque les noms des catégories sont longs ou que leur classement constitue le message principal.

RExécuter ce code
values <- c(0.40, 0.75, 0.20, 0.60, 0.50)
barplot(values, horiz = TRUE, col = "#2563eb",
        border = NA, xlab = "Value")
04
Exemple 04R de baseDébutant

Ajouter les noms des catégories

Les libellés des catégories indiquent ce que représente chaque barre et rendent la comparaison interprétable.

Ajouter les noms des catégories : exemple généré dans R
Résultat de l’exemple généré dans R.

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é.

RExécuter ce code
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")
05
Exemple 05R de baseDébutant

Construire un diagramme en barres empilées

Un diagramme en barres empilées divise chaque barre en segments, montrant à la fois le total et la contribution de chaque sous-groupe.

Construire un diagramme en barres empilées : exemple généré dans R
Résultat de l’exemple généré dans R.

Transmettez une matrice à barplot(). Chaque ligne devient un segment coloré. Une légende est indispensable, car la couleur identifie les sous-groupes.

RExécuter ce code
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")
06
Exemple 06R de baseDébutant

Comparer les groupes côte à côte

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.

Comparer les groupes côte à côte : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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")
07
Exemple 07ggplot2Débutant

Créer un diagramme en barres avec ggplot2

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.

Créer un diagramme en barres avec ggplot2 : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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()
08
Exemple 08plotlyDébutant

Créer un diagramme en barres interactif avec plotly

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.

Créer un diagramme en barres interactif avec plotly : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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"))
09
Exemple 09R de baseIntermédiaire

Trier les barres par valeur

Un diagramme ordonné classe les catégories selon leur valeur pour rendre immédiatement visibles les classements et les écarts importants.

Trier les barres par valeur : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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")
10
Exemple 10R de baseIntermédiaire

Afficher les valeurs au-dessus des barres

Les étiquettes de valeurs donnent les quantités exactes sans obliger le lecteur à les estimer à partir de l’axe.

Afficher les valeurs au-dessus des barres : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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")
11
Exemple 11R de baseIntermédiaire

Créer un diagramme empilé à 100 %

Un diagramme empilé à 100 % ramène chaque barre au même total et compare les parts relatives des sous-groupes.

Créer un diagramme empilé à 100 % : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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")
12
Exemple 12R de baseIntermédiaire

Ajouter des barres d’erreur

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.

Ajouter des barres d’erreur : exemple généré dans R
Résultat de l’exemple généré dans R.

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.

RExécuter ce code
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)