library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point(color = "#3a86d4") +
geom_smooth() +
theme_minimal()
Ajustez des lignes de tendance loess, lm et gam et contrôlez la bande de confiance
Ajoutez une ligne lissée ou une courbe de tendance à un graphique ggplot2 avec geom_smooth() — choisissez la méthode loess, lm ou gam, affichez ou masquez la bande de confiance, ajustez une ligne par groupe, et contrôlez le span, la formule, la couleur et le type de ligne.
27 juin 2026
7 juillet 2026
geom_smooth() ajoute une ligne de tendance ajustée et une bande de confiance à n’importe quel graphique ggplot2.method = "lm" pour une droite de régression, "loess" pour une courbe, "gam" pour une spline lissée.se = FALSE supprime la bande de confiance grise.color pour ajuster une ligne lissée par groupe.span (loess) ou une formula personnalisée (par exemple un polynôme).Une ligne lissée résume la tendance cachée dans un nuage de points — elle répond à la question « la relation monte-t-elle, descend-elle ou se courbe-t-elle ? » d’un seul coup d’œil. Dans ggplot2, une seule couche le fait : geom_smooth() ajuste un modèle à vos données et dessine la ligne ajustée plus une bande de confiance.
Cette leçon commence avec le lisseur par défaut, puis parcourt chaque méthode (loess, lm, gam), en activant ou désactivant la bande de confiance, en ajustant une ligne distincte par groupe, et en contrôlant la forme de la courbe. Nous utilisons le jeu de données intégré mtcars — le poids des voitures (wt) en fonction des miles par gallon (mpg).
Ajoutez geom_smooth() au-dessus d’une couche de points. Sans argument, elle choisit une méthode pour vous — loess pour moins de 1 000 points — et ombre la bande de confiance à 95 % en gris.

La ligne trace la tendance locale ; la bande montre où la vraie moyenne est susceptible de se situer. Les voitures plus lourdes obtiennent clairement moins de miles par gallon.
L’argument method choisit le modèle derrière la ligne. Les trois auxquels vous aurez le plus souvent recours :
"lm" — une droite de régression linéaire."loess" — une régression locale qui se courbe avec les données (la méthode par défaut pour les petits jeux de données)."gam" — un modèle additif généralisé, une spline lissée qui s’adapte aux grands jeux de données.Voici lm pour une tendance en ligne droite.

Remplacez par "loess" pour une courbe qui suit la structure locale.

Et "gam" pour une spline lissée (le même style de formula que ggplot2 utilise pour les grands jeux de données).
La bande grise est l’intervalle de confiance à 95 % de la ligne ajustée. Supprimez-la avec se = FALSE lorsque vous voulez une ligne de tendance épurée et rien d’autre.
Associez une variable de regroupement à color dans l’aes() de premier niveau et geom_smooth() ajuste une ligne distincte par groupe. Enveloppez la colonne numérique du nombre de cylindres (cyl) dans factor() pour que ggplot2 la traite comme des catégories discrètes, et ajoutez une palette viridis adaptée au daltonisme.

Pour ajuster une seule ligne à travers tous les points tout en les colorant par groupe, déplacez color hors de l’aes() global et placez-le uniquement dans geom_point().
Pour un lisseur loess, span définit la quantité de données que chaque ajustement local utilise — plus petit est plus ondulé, plus grand est plus lissé. Comparez un span serré avec un span large.

Pour un ajustement lm, passez une formula pour ajuster un polynôme au lieu d’une ligne droite — ici un polynôme de degré 3.
Changez la color, la linewidth et le linetype de la ligne à l’intérieur de geom_smooth(), et la couleur de la bande avec fill. Ces réglages définissent un rendu fixe (en dehors de aes()).
Les graphiques ci-dessus ont été rendus lors de la génération du site. Envie d’expérimenter ? Modifiez le code et appuyez sur Run — il s’exécute dans votre navigateur via webR (sans serveur, sans installation).
Vous travaillez en Python ? Un guide des lignes de tendance avec matplotlib/seaborn arrive bientôt dans la série Python.
Demandez à Prova « dois-je utiliser lm ou loess pour cette relation ? » — elle répond avec du code que vous pouvez exécuter, donc l’explication est reproductible. The runtime is the judge. Demander à Prova →
geom_smooth() using method = ‘gam’ and formula ‘y ~ s(x)’ » s’affiche comme un message, pas une erreur. ggplot2 vous indique simplement quel lisseur et quelle formule il a choisis. Définissez method et formula explicitement pour le faire taire, ou conservez message: false dans vos options de bloc.color dans l’aes() global groupe aussi le lisseur. Déplacez color dans geom_point(aes(...)) pour que seuls les points soient colorés et qu’une seule ligne soit ajustée.span too small » / un avertissement sur un nombre de points trop faible. Un span petit (ou un polynôme de degré élevé) sur un petit jeu de données peut ne pas s’ajuster. Augmentez le span vers 0.75 (la valeur par défaut) ou utilisez un degré de polynôme plus faible.Ajoutez geom_smooth() au-dessus de votre graphique, par exemple ggplot(mtcars, aes(wt, mpg)) + geom_point() + geom_smooth(). Sans argument, elle ajuste une courbe loess (pour les petits jeux de données) et dessine une bande de confiance à 95 %.
Définissez la méthode sur modèle linéaire : geom_smooth(method = "lm"). Utilisez method = "loess" pour une courbe locale ou method = "gam" pour une spline lissée sur les grands jeux de données.
Passez se = FALSE à geom_smooth(), par exemple geom_smooth(method = "lm", se = FALSE). Cela dessine uniquement la ligne ajustée sans bande grise.
lm ajuste une ligne droite (régression linéaire) ; loess ajuste une courbe locale flexible, la méthode par défaut sous ~1 000 points ; gam ajuste une spline lissée qui s’adapte aux grands jeux de données et est la méthode par défaut au-delà de ce seuil.
Associez la variable de regroupement à color dans l’aes() de premier niveau, par exemple aes(wt, mpg, color = factor(cyl)). ggplot2 ajuste alors une ligne geom_smooth() par groupe de couleur. Pour conserver une seule ligne partagée, déplacez plutôt color dans geom_point().
Complétez le code pour que le nuage de points inclue une ligne de tendance droite (lm) sans bande de confiance.
Vérification rapide : quel argument ajuste une courbe qui se plie selon la structure locale plutôt qu’une ligne droite ?
method = "loess". Elle ajuste une régression locale qui suit la forme des données, tandis que method = "lm" force une ligne droite.
Vous avez ajouté une courbe de tendance lissée avec geom_smooth(), basculé entre les méthodes loess, lm et gam, activé ou désactivé la bande de confiance avec se, ajusté une ligne par groupe avec color, et façonné la courbe avec span, formula et le style. Ensuite, construisez le graphique sous-jacent dans la leçon nuage de points et ajoutez des lignes de référence fixes.
Vous préférez un livre ? GGPlot2 Essentials est disponible en PDF téléchargeable — toutes les leçons de cette série, hors ligne et à vous.
Prouvez que vous savez le faire. Maîtrisez toute la série ggplot2 — suivez votre parcours, construisez des projets et obtenez un certificat.
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
✓ Vous êtes Pro — continuez. The runtime is the judge.
Prêt à passer à la vitesse supérieure ?
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.
Cette leçon est reproductible : les figures sont exécutées lors de la génération du site (si elles s’affichent, le code fonctionne), et le bac à sable et le quiz se réexécutent en direct dans votre navigateur. The runtime is the judge.
@online{2026,
author = {},
title = {ggplot ligne de tendance : geom\_smooth en R},
date = {2026-06-27},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/smooth-line},
langid = {fr}
}