Corrélogramme en R : visualiser une matrice de corrélation avec corrplot

Transformez une matrice de corrélation en un graphique clair et coloré — méthodes, dispositions, réordonnancement hiérarchique et marques de significativité — avec le package corrplot

Apprenez à tracer un corrélogramme en R — une représentation graphique d’une matrice de corrélation — avec le package corrplot. Calculez la matrice avec cor(), puis visualisez-la avec différentes méthodes (circle, pie, colour, number), des dispositions en triangle supérieur/inférieur, un réordonnancement hiérarchique, des couleurs personnalisées et des marques de significativité qui barrent les corrélations non significatives.

Date de publication

23 juin 2026

Modifié

11 juillet 2026

AstucePoints clés
  • Un corrélogramme est un graphique d’une matrice de corrélation — la couleur et la forme encodent les coefficients de corrélation, faisant ressortir les relations les plus fortes.
  • Calculez la matrice avec la fonction de base cor(), puis tracez-la avec corrplot::corrplot().
  • Choisissez une méthode (circle, pie, color, number) et une disposition (type = "upper"/"lower"/ "full") ; réordonnez avec order = "hclust" pour faire apparaître les regroupements de variables liées.
  • Ajoutez un test de significativité : passez une matrice de p-value (p.mat) pour que corrplot barre les corrélations non significatives.
  • Pour calculer (et non tracer) la matrice et ses p-values, voir la leçon sur la matrice de corrélation.

Introduction

Un corrélogramme est une représentation graphique d’une matrice de corrélation — une grille où la couleur et la forme de chaque cellule encodent la corrélation entre deux variables. C’est le moyen le plus rapide de repérer les variables les plus corrélées d’un jeu de données et de révéler une structure cachée en réordonnant les variables liées les unes à côté des autres.

Cette leçon utilise le package corrplot — l’outil de corrélogramme standard en R — sur les données intégrées mtcars. Vous calculez la matrice une seule fois avec la fonction de base cor(), puis vous l’explorez visuellement. (Pour calculer la matrice et ses p-values d’une manière tidy et compatible avec les pipes, voir la leçon sur la matrice de corrélation.)

Calculer la matrice de corrélation

cor() renvoie la matrice des corrélations de Pearson par paires :

M <- cor(mtcars)
round(M[1:4, 1:4], 2)   # a corner of the 11x11 matrix
       mpg   cyl  disp    hp
mpg   1.00 -0.85 -0.85 -0.78
cyl  -0.85  1.00  0.90  0.83
disp -0.85  0.90  1.00  0.79
hp   -0.78  0.83  0.79  1.00

Tracer le corrélogramme

corrplot() représente toute la matrice sous forme de graphique. La méthode par défaut method = "circle" dimensionne et colore un cercle selon la corrélation — bleu pour positif, rouge pour négatif :

library(corrplot)

M <- cor(mtcars)
corrplot(M, method = "circle")

A correlogram of the mtcars correlation matrix: a grid of circles whose size and blue/red colour encode each pairwise correlation.

Autres méthodes

Au-delà du cercle par défaut, corrplot() propose plusieurs encodages — choisissez celui qui se lit le mieux selon votre public et la taille de votre matrice :

  • square et color remplissent chaque cellule comme une heatmap compacte — le choix le plus net pour une grande matrice où il suffit de voir se situent les blocs les plus forts.
  • ellipse montre la direction et la force d’un coup d’œil : l’ellipse se rétrécit et s’incline vers une ligne droite à mesure que la corrélation approche ±1 (penchée à droite pour une corrélation positive, à gauche pour une négative).
  • circle et pie encodent la magnitude par la surface — un cercle plus grand, ou une part de camembert plus pleine, signifie une corrélation plus forte.
  • number affiche le coefficient exact, et shade est un remplissage coloré avec un ombrage diagonal.
library(corrplot)

M <- cor(mtcars)
par(mfrow = c(2, 3))
corrplot(M, method = "square")
corrplot(M, method = "ellipse")
corrplot(M, method = "number")
corrplot(M, method = "color")
corrplot(M, method = "pie")
corrplot(M, method = "shade")

Six correlograms of the mtcars matrix drawn with the square, ellipse, number, colour, pie and shade methods, illustrating corrplot's encoding options.

par(mfrow = c(1, 1))

Disposition et réordonnancement

N’affichez que le triangle supérieur (ou inférieur) pour éviter l’image miroir redondante, et réordonnez avec une classification hiérarchique (order = "hclust") pour que les variables corrélées soient côte à côte — la structure devient évidente :

library(corrplot)

M <- cor(mtcars)
corrplot(M, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)

An upper-triangle correlogram of mtcars, hierarchically reordered so that blocks of mutually correlated variables (like cyl, disp, hp, wt) cluster together.

Personnaliser les couleurs

corrplot() est fourni avec une échelle bleu–rouge, mais vous la contrôlez via l’argument col = — passez n’importe quel vecteur de couleurs et corrplot les répartit sur toute la plage des corrélations, de la valeur la plus négative (la première couleur) jusqu’à la valeur la plus positive (la dernière couleur) en passant par zéro. Construisez une rampe divergente lisse avec la fonction de base colorRampPalette() : donnez-lui la couleur de l’extrémité négative, "white" pour le zéro, et la couleur de l’extrémité positive, puis demandez un gradient fin. Ici, nous gardons l’azur de la marque #3a86d4 pour les corrélations positives et un rouge profond pour les négatives :

library(corrplot)

M <- cor(mtcars)

col <- colorRampPalette(c("#b2182b", "white", "#3a86d4"))(200)
corrplot(M, method = "color", col = col)

A colour-method correlogram of the mtcars matrix using a custom diverging ramp: deep red for negative correlations, white at zero, and brand azure for positive correlations.

Le (200) demande à colorRampPalette() 200 couleurs interpolées, de sorte que le remplissage se dégrade en douceur plutôt que par paliers visibles.

Pour une échelle prête à l’emploi et éprouvée en publication, enveloppez une palette divergente RColorBrewer dans la même rampe. RdBu, BrBG, PuOr et PRGn font partie des palettes divergentes adaptées au daltonisme — optez pour l’une d’elles lorsque le signe de chaque corrélation doit rester lisible pour tous les lecteurs :

library(corrplot)
library(RColorBrewer)

M <- cor(mtcars)

col <- colorRampPalette(brewer.pal(n = 8, name = "RdBu"))(200)
corrplot(M, type = "upper", order = "hclust", col = col,
         tl.col = "black", tl.srt = 45)

An upper-triangle, hierarchically reordered correlogram of the mtcars matrix coloured with the colourblind-safe RdBu diverging palette from RColorBrewer, red for negative and blue for positive correlations.

brewer.pal() ne renvoie que huit couleurs discrètes ; en l’enveloppant dans colorRampPalette(...)(200), on les interpole en un gradient lisse de 200 paliers. Comme dans la section sur la disposition, tl.col et tl.srt définissent la couleur et la rotation des étiquettes de texte.

Ajouter le test de significativité

Une corrélation peut être proche de zéro par hasard — marquez celles qui sont réelles. Calculez une matrice de p-value avec une petite fonction auxiliaire (en bouclant cor.test() sur chaque paire), puis passez-la comme p.mat avec un sig.level : corrplot barre les cellules non significatives :

library(corrplot)

M <- cor(mtcars)

# p-value matrix: cor.test() for every pair
cor.mtest <- function(mat) {
  mat <- as.matrix(mat)
  n <- ncol(mat)
  p.mat <- matrix(NA, n, n)
  diag(p.mat) <- 0
  for (i in 1:(n - 1)) {
    for (j in (i + 1):n) {
      p.mat[i, j] <- p.mat[j, i] <- cor.test(mat[, i], mat[, j])$p.value
    }
  }
  colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
  p.mat
}
p.mat <- cor.mtest(mtcars)

corrplot(M, type = "upper", order = "hclust",
         p.mat = p.mat, sig.level = 0.05, tl.col = "black", tl.srt = 45)

An upper-triangle correlogram of mtcars with non-significant correlations (p ></picture> 0.05) crossed out, so only the statistically reliable relationships remain visible.

Les cellules barrées sont des corrélations qui ne sont pas statistiquement significatives au seuil de 0.05 — limitez votre interprétation aux cellules qui subsistent.

Essayez en direct

Tracez un corrélogramme d’un autre jeu de données, ou changez la méthode et l’ordonnancement. Le bac à sable démarre au premier Run.

🟢 Avec un agent IA

Demandez à Prova « trace un corrélogramme de la matrice de corrélation de mes données, réordonne-le pour montrer les regroupements, et barre les corrélations non significatives » — elle répond avec du code corrplot que vous pouvez exécuter sur vos propres données. The runtime is the judge. Demander à Prova →

Problèmes fréquents

Les colonnes non numériques font échouer cor(). cor() a besoin d’une matrice entièrement numérique — supprimez ou convertissez d’abord les colonnes facteur/caractère (p. ex. cor(mydata[sapply(mydata, is.numeric)])).

Les valeurs manquantes renvoient NA. Avec des données incomplètes, ajoutez use = "pairwise.complete.obs" à cor() pour que chaque corrélation utilise les paires présentes.

Le graphique paraît encombré avec de nombreuses variables. Utilisez type = "upper" (ou "lower") pour supprimer la moitié redondante, order = "hclust" pour regrouper les variables liées, et envisagez method = "color" plutôt que les nombres pour une grande matrice.

Questions fréquentes

Un corrélogramme est une représentation graphique d’une matrice de corrélation — une grille dans laquelle la couleur et la forme de chaque cellule encodent la corrélation entre deux variables. Il rend les relations positives et négatives les plus fortes faciles à voir d’un coup d’œil, surtout après avoir réordonné les variables liées ensemble.

Calculez la matrice de corrélation avec cor(data), puis tracez-la avec corrplot::corrplot(M). Choisissez une méthode (circle, color, number, pie), une disposition (type = "upper"), et order = "hclust" pour regrouper les variables liées. Ajoutez une matrice de p-value via p.mat pour marquer les corrélations non significatives.

Calculez une matrice de p-value (bouclez cor.test() sur chaque paire, ou utilisez rstatix::cor_pmat()), puis passez-la à corrplot() comme p.mat avec sig.level = 0.05. Par défaut, corrplot barre les cellules dont la p-value dépasse le seuil, ne laissant que les corrélations statistiquement fiables.

Une matrice de corrélation est le tableau des coefficients de corrélation (les nombres) ; un corrélogramme en est la forme visuelle. Calculez la matrice avec cor() ou rstatix::cor_mat() (voir la leçon sur la matrice de corrélation) ; visualisez-la avec corrplot().

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, tracez un corrélogramme en triangle supérieur, ordonné par hclust, des quatre colonnes numériques d’iris avec la méthode color. Remplissez le blanc.
  2. Conceptuel. Pourquoi réordonner la matrice avec order = "hclust" est-il utile, et que signifie le fait de barrer une cellule ?

Remplissez le blanc avec "upper" (ou "lower"). Pour la question 2, rappelez-vous que la classification met les variables corrélées côte à côte, et qu’une cellule barrée est liée au test de significativité.

M <- cor(iris[, 1:4])
corrplot(M, method = "color", type = "upper", order = "hclust")
#> Petal.Length & Petal.Width cluster together (strongly correlated).

Pour la question 2 : order = "hclust" regroupe les variables mutuellement corrélées les unes à côté des autres, révélant des blocs de variables liées qu’un ordre alphabétique brut masque. Une cellule barrée marque une corrélation qui n’est pas statistiquement significative (p > le sig.level choisi), elle ne doit donc pas être interprétée.

Conclusion

Vous savez maintenant tracer un corrélogramme en R avec corrplot : calculez la matrice avec cor(), puis visualisez-la — en choisissant une méthode et une disposition, en réordonnant avec order = "hclust" pour exposer les regroupements, et en superposant un test de significativité pour que les corrélations non significatives soient barrées. C’est le moyen le plus rapide de lire une matrice de corrélation et de communiquer quelles relations dans vos données sont réelles.

Leçons connexes

Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série Corrélation en R — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.

dès 15 $/mois facturé annuellement

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

Recevez les nouvelles leçons R & Python par e-mail

Pratique, reproductible, sans spam. Désinscription à tout moment.

Double opt-in. Nous ne partageons jamais votre e-mail.

Partager cette pageXLinkedInRedditHN
Note

Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — modifiez n’importe quel bloc et faites Run pour le reproduire vous-même.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Corrélogramme en R : visualiser une matrice de corrélation
    avec corrplot},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/correlation/correlogram-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Corrélogramme en R : visualiser une matrice de corrélation avec corrplot.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/correlation/correlogram-in-r.