Matrice de nuages de points en ggplot2 : ggpairs()
Tracez toutes les paires de variables d’un coup, lisez les corrélations et colorez par groupe avec GGally
Construisez une matrice de nuages de points en ggplot2 avec ggpairs() de GGally : tracez toutes les paires de variables d’un coup, lisez les panneaux de corrélation intégrés, choisissez les colonnes à afficher, colorez par facteur de groupe et personnalisez les panneaux supérieurs, inférieurs et diagonaux avec wrap().
Date de publication
12 juillet 2026
Modifié
12 juillet 2026
AstucePoints clés
GGally::ggpairs() trace une matrice de nuages de points en ggplot2 — chaque paire de variables dans une seule grille, avec nuages de points, densités et corrélations intégrés.
La disposition par défaut est le nuage de points sous la diagonale, la densité dessus et le coefficient de corrélation au-dessus — aucune fonction de panneau à écrire.
Sélectionnez les colonnes avec columns = et renommez-les avec columnLabels =.
Colorez par groupe avec aes(colour = <factor>) ; ajoutez + scale_colour_manual() pour une palette adaptée au daltonisme.
Personnalisez n’importe quelle zone — upper, lower, diag — avec wrap() pour changer le type de panneau ou ses attributs esthétiques (ajouter un lissage, ajuster alpha pour la surcharge).
ggpairs() gère aussi les colonnes catégorielles, en mêlant boîtes à moustaches et histogrammes dans la matrice.
Vous avez plusieurs variables numériques et voulez voir comment elles sont liées — avant d’ajuster un modèle. Une matrice de nuages de points trace chaque nuage de points par paire dans une seule grille, de sorte que vous pouvez balayer d’un coup d’œil toutes les corrélations, les regroupements et les valeurs aberrantes. C’est le premier regard le plus rapide sur un petit jeu de données multivarié.
En ggplot2, l’outil est ggpairs() du paquet GGally, une extension de ggplot2. Un seul appel vous donne une matrice prête à publier : des nuages de points dans le triangle inférieur, une courbe de densité sur la diagonale et la corrélation de Pearson dans le triangle supérieur — et elle se colore proprement par groupe. Cette leçon couvre l’appel de base, le choix des colonnes, la coloration par facteur, la personnalisation de chaque zone de panneau et l’intégration de variables catégorielles.
Vous préférez R de base ? La leçon matrice de nuages de points en R de base construit la même grille avec pairs() et des fonctions de panneau personnalisées — celle-ci en est le pendant ggplot2.
Les données
Nous utilisons le jeu de données intégré iris : quatre mesures de fleurs (longueur et largeur des sépales et des pétales) pour 50 fleurs de chacune des trois espèces. Les quatre colonnes numériques sont celles que nous comparons ; la cinquième, Species, est le facteur de groupe.
Chargez GGally et passez les quatre colonnes numériques. columns = 1:4 écarte le facteur Species afin que la matrice n’affiche que les mesures.
library(GGally)ggpairs(iris, columns =1:4)
Lisez-la comme un tableau. Chaque cellule hors diagonale associe deux variables ; le triangle inférieur trace le nuage de points et le triangle supérieur affiche la corrélation de Pearson de cette paire (Corr:). La diagonale montre la distribution propre à chaque variable sous forme de courbe de densité. Ainsi, en une seule figure, vous obtenez la forme de chaque variable, la dispersion de chaque paire et la force de chaque relation — les trois choses que vous vérifiez en premier. La longueur et la largeur des pétales ressortent immédiatement : une corrélation de 0.96.
Choisir les colonnes à afficher
ggpairs() trace les colonnes que vous nommez. Utilisez columns = pour vous concentrer sur un sous-ensemble, columnLabels = pour leur donner des noms lisibles et title = pour légender la figure :
Nommer les colonnes garde la matrice petite et lisible — ne lui donnez que les variables que vous voulez réellement comparer, surtout lorsque le data frame en compte beaucoup plus.
Colorer par groupe
Associer un facteur à la couleur transforme la matrice en vérification rapide de la séparation des groupes. Passez un aes(colour = Species) global : les points du nuage, les densités de la diagonale et les panneaux de corrélation se répartissent tous par groupe. Ajoutez scale_colour_manual() et scale_fill_manual() — un + sur un objet ggpairs applique l’échelle à chaque panneau — pour une palette adaptée au daltonisme.
Les panneaux des pétales se scindent en trois nuages nets — la taille des pétales sépare les espèces bien mieux que celle des sépales — et chaque panneau supérieur indique désormais la corrélation par espèce en plus de la corrélation globale. Cette lecture par groupe est précisément la raison d’être de la matrice colorée. (alpha = 0.6 estompe les points pour que les panneaux denses restent lisibles.)
Personnaliser les panneaux
Chaque zone de la matrice — upper, lower, diag — reçoit une liste qui définit le type de panneau et ses attributs esthétiques. Enveloppez un type de panneau dans wrap() pour lui passer des arguments. Ici, nous posons un lissage LOESS (régression localement pondérée) sur les nuages de points inférieurs, teintons les densités de la diagonale et réduisons la taille du texte de corrélation dans le triangle supérieur :
Les types de panneaux nommés sont les briques de base : "points" et "smooth" pour le nuage inférieur/supérieur, "cor" pour la corrélation, "densityDiag"/"barDiag" pour la diagonale. L’argument alpha est la solution classique à la surcharge — estompez les points jusqu’à ce que les regroupements denses se lisent comme une teinte plutôt qu’un pâté uniforme.
Mélanger variables continues et catégorielles
Contrairement à pairs() de R de base, ggpairs() gère aussi les colonnes catégorielles. Incluez le facteur Species et il remplit judicieusement les cellules mixtes — une boîte à moustaches là où une variable continue rencontre le facteur, un diagramme en barres sur la diagonale du facteur, un histogramme à facettes là où le facteur rencontre une variable continue :
ggpairs() choisit le type de panneau à partir de chaque paire de types de colonnes, si bien que vous pouvez déposer une variable de groupe directement dans la matrice et lire comment chaque mesure diffère selon ses niveaux.
Lire les panneaux de corrélation
La valeur Corr: de chaque panneau supérieur est la corrélation de Pearson de cette paire — de −1 (négative parfaite) à +1 (positive parfaite) en passant par 0 (aucune relation linéaire). Lorsque vous colorez par groupe, ggpairs() ajoute la corrélation au sein de chaque groupe sous la corrélation globale, ce qui vous permet de voir si une relation tient à l’intérieur de chaque groupe ou si elle provient de la séparation entre eux.
ggpairs() affiche le coefficient mais n’est pas un graphique de matrice de corrélation dédié. Pour une heatmap de corrélation codée par couleur avec marques de signification, utilisez la leçon ggcorrplot ; et pour des courbes de survie de Kaplan-Meier en ggplot2, utilisez ggsurvplot() de survminer plutôt que ggsurv() de GGally.
Essayez en direct
Modifiez les colonnes, la palette ou les enveloppes de panneaux et appuyez sur Run — cela s’exécute dans votre navigateur via webR, sans installation. (GGally se télécharge au premier Run, laissez-lui donc un instant.)
🟢 Avec un agent IA
Demandez à Prova« comment mettre un lissage LOESS dans les panneaux inférieurs d’un graphique ggpairs ? » — elle répond avec du code ggplot2 que vous pouvez exécuter, donc la correction est reproductible. The runtime is the judge.Demander à Prova →
Problèmes fréquents
ggpairs() se plaint d’un trop grand nombre de colonnes. La matrice croît en n² panneaux — passez un grand data frame et elle devient lente et illisible. Sélectionnez une poignée de colonnes avec columns = avant de tracer ; dix variables font déjà cent panneaux.
Les couleurs ne changent pas quand j’ajoute une échelle. Associez le groupe à l’intérieur d’un aes() global — ggpairs(iris, aes(colour = Species)) — et non comme argument d’un panneau. Ensuite, + scale_colour_manual() (et scale_fill_manual() pour les densités) recolore tous les panneaux d’un coup.
Les panneaux denses forment un pâté uniforme. C’est de la surcharge, pas un bogue. Estompez les points avec aes(alpha = ...) ou wrap("points", alpha = 0.3), ou basculez les panneaux inférieurs sur "smooth" pour tracer une courbe de tendance à travers le nuage.
Questions fréquentes
NoteComment faire une matrice de nuages de points en ggplot2 ?
Utilisez GGally::ggpairs(). Chargez GGally et passez vos données avec les colonnes à tracer — ggpairs(iris, columns = 1:4) — et il trace chaque nuage de points par paire, une densité sur la diagonale, et la corrélation dans le triangle supérieur, le tout en ggplot2.
NoteComment colorer un graphique ggpairs par groupe ?
Associez le facteur de groupe à l’intérieur d’un aes() global : ggpairs(iris, columns = 1:4, aes(colour = Species)). Les points du nuage, les densités de la diagonale et les panneaux de corrélation se répartissent tous par groupe. Ajoutez + scale_colour_manual(values = my_cols) + scale_fill_manual(values = my_cols) pour une palette personnalisée.
NoteComment n’afficher que le triangle inférieur dans ggpairs ?
Videz la zone supérieure : ggpairs(iris, columns = 1:4, upper = "blank"). Mettez plutôt lower = "blank" pour ne garder que le triangle supérieur. Les deux triangles hors diagonale montrent des types de panneaux différents (nuage de points contre corrélation), choisissez donc celui que vous voulez lire.
NoteQuelle est la différence entre ggpairs() et pairs() de R de base ?
pairs() relève de R de base : rapide, sans paquet, mais vous écrivez des fonctions de panneau pour ajouter des corrélations ou des histogrammes. ggpairs() relève de ggplot2 via GGally : corrélations, densités et coloration par groupe sont intégrées, et il gère aussi les colonnes catégorielles. Voyez la leçon pairs() en R de base pour cet idiome.
Noteggpairs peut-il gérer les variables catégorielles ?
Oui. Incluez une colonne de facteur et ggpairs() remplit les cellules mixtes avec des boîtes à moustaches et des histogrammes — une boîte à moustaches là où une variable continue rencontre le facteur et un diagramme en barres sur la diagonale du facteur — au lieu de générer une erreur comme le fait pairs() sur des données non numériques.
Testez vos connaissances
ImportantExercice : une matrice colorée avec lissages
À partir des colonnes mpg, hp, wt et qsec de mtcars, tracez une matrice de nuages de points ggpairs() qui place un lissage LOESS dans les panneaux inférieurs. Colorez les points en un seul azur ("#3a86d4").
Le wrap("smooth", ...) définit le type du panneau inférieur sur un nuage de points avec lissage et lui transmet la couleur et alpha ; les panneaux supérieurs conservent l’affichage de corrélation par défaut.
Vérification rapide. Vous voulez une matrice ggpairs() qui n’affiche que le triangle inférieur des panneaux. Quel argument définissez-vous, et à quelle valeur ?
AstuceAfficher la réponse
upper = "blank". Vider la zone supérieure laisse les panneaux de nuage inférieurs et la diagonale ; mettez plutôt lower = "blank" pour ne garder que le triangle supérieur (corrélation).
Conclusion
GGally::ggpairs() est la matrice de nuages de points en un seul appel pour ggplot2 : donnez-lui vos colonnes et il trace toutes les paires d’un coup, avec nuages de points, densités diagonales et corrélations intégrés. Sélectionnez les variables avec columns =, renommez avec columnLabels =, colorez par facteur avec aes(colour = ...) plus une échelle manuelle, et remodelez n’importe quelle zone avec upper/lower/diag et wrap(). Parce que c’est du ggplot2 de bout en bout, il mélange aussi les variables continues et catégorielles que pairs() de R de base ne peut pas.
Cette leçon est reproductible : chaque figure a été produite par le code affiché, exécuté lors de la génération du site (si elles s’affichent, le code fonctionne), et le bac à sable se réexécute en direct dans votre navigateur. Modifiez n’importe quel bloc et appuyez sur Run. The runtime is the judge.
@online{2026,
author = {},
title = {Matrice de nuages de points en ggplot2 : ggpairs()},
date = {2026-07-12},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/scatterplot-matrix},
langid = {fr}
}