Personnaliser un graphique ggpubr en R avec ggpar()

Titres, palettes, limites d’axes, échelles logarithmiques, rotation des étiquettes et légendes — donnez la bonne allure à n’importe quel graphique ggpubr en un seul appel

Personnalisez n’importe quel graphique ggpubr en R avec ggpar() : définissez le titre, le sous-titre et la légende de bas de figure, changez les libellés et les limites d’axes, changez de palette de couleurs (revue, brewer, gradient), transformez les axes en échelle logarithmique ou racine carrée, faites pivoter les étiquettes, déplacez ou masquez la légende, et changez de thème. Chaque exemple est rendu pour vous et s’exécute en direct dans votre navigateur.

Date de publication

22 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • ggpar() est l’outil de réglage tout-en-un : enveloppez n’importe quel graphique ggpubr et définissez le titre/sous-titre/légende de bas de figure, les libellés & limites d’axes, la palette, l’échelle d’axe et la légende en un seul appel.
  • Chaque argument de ggpar() peut aussi être passé directement à la fonction de tracé (ggboxplot(), ggscatter(), …) — ggpar() vous laisse simplement régler un graphique que vous avez déjà construit.
  • Colorez par groupe avec palette = (noms de revues comme "jco"/"npg", un nom Brewer, ou votre propre vecteur) ; colorez une variable continue avec gradient_color() / gradient_fill().
  • Contrôle des axes : xlab/ylab renomment, xlim/ylim rognent l’étendue, et yscale = "log2" (ou "log10"/"sqrt") transforme l’échelle — ajoutez format.scale = TRUE pour des étiquettes nettes.
  • Soignez l’apparence : rotate_x_text(45) incline les étiquettes longues, legend = "right" (ou "none") déplace/masque la légende, rremove("grid") retire des composants, et ggtheme = change de thème.
  • ggpubr applique theme_pubr() automatiquement : ce sont donc des ajustements d’un graphique déjà prêt à publier — pas un thème que vous construisez de zéro.
Obtenez le livre — R Graphics Essentials (PDF)

Introduction

Vous avez construit un graphique ggpubr — une boîte à moustaches, un nuage de points, des barres de moyennes — et il est presque comme il faut. Il vous faut maintenant définir le titre, renommer les axes, rogner l’étendue des y, passer à une palette adaptée au daltonisme, mettre l’axe des y sur une échelle logarithmique, ou faire pivoter de longues étiquettes. Le paquet ggpubr réunit tout cela dans une seule fonction : ggpar().

ggpar() prend un graphique ggpubr (ou tout graphique ggplot2) terminé et applique les paramètres graphiques qui contrôlent son apparence :

  • Titres & libelléstitle, subtitle, caption, xlab, ylab, legend.title.
  • Couleurpalette pour les couleurs de groupe ; gradient_color() / gradient_fill() pour une échelle continue.
  • Axesxlim/ylim (limites), xscale/yscale ("log2", "log10", "sqrt"), rotation des étiquettes.
  • Légende — position ("top", "right", "none", ou c(x, y)) et apparence.
  • Thème — remplacez theme_pubr() par n’importe quel thème ggplot2 via ggtheme.

Une règle à retenir : chaque argument que ggpar() accepte peut aussi être passé directement à la fonction de tracé — ggboxplot(..., palette = "jco", ylab = "Tooth length") fonctionne exactement comme ggpar(p, palette = "jco", ylab = "Tooth length"). Utilisez ggpar() pour retoucher un graphique que vous avez déjà stocké dans une variable ; passez les arguments en ligne quand vous le construisez de zéro.

Cette leçon parcourt toute la boîte à outils de personnalisation sur les données intégrées ToothGrowth (une boîte à moustaches par groupe) et mtcars (un nuage de points pour les couleurs en gradient). Chaque figure est rendue ici même, et vous pouvez réexécuter ou modifier chacune d’elles en direct.

Un graphique à personnaliser

Nous commençons par stocker dans p une boîte à moustaches basique de la longueur des dents par dose, colorée par groupe. Tout ce qui suit modifie ce graphique — chaque bloc reconstruit donc p pour rester autonome, puis le personnalise.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")
p

A basic ggpubr box plot of tooth length across three doses, each box coloured by dose with the default publication theme.

Voici la toile. Remarquez l’apparence épurée de theme_pubr() que vous obtenez gratuitement.

Définir le titre, le sous-titre, la légende de bas de figure et les libellés d’axes

ggpar() définit chaque élément textuel du graphique en un seul appel : un title, un subtitle et une caption optionnels, les libellés d’axes xlab / ylab, et le legend.title.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p,
      title = "Tooth length by dose",
      subtitle = "Guinea pigs, ToothGrowth data",
      caption = "Source: ggpubr",
      xlab = "Dose (mg)",
      ylab = "Tooth length",
      legend.title = "Dose (mg)")

A ggpubr box plot of tooth length by dose with a custom title, subtitle, caption and renamed axis labels applied with ggpar().

Vous pouvez aussi styliser chaque élément textuel — sa taille, son style et sa couleur — avec les arguments font.*. Chacun est un vecteur de longueur 3 : taille, style ("plain", "bold", "italic", "bold.italic") et couleur. Passez une seule valeur pour ne changer qu’une chose (font.x = 14 pour la taille seulement, font.x = "bold" pour le style seulement). Utilisez \n à l’intérieur d’un titre pour le répartir sur plusieurs lignes.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p,
      title = "Plot of length\nby dose",   # \n breaks the title onto two lines
      xlab = "Dose (mg)", ylab = "Tooth length",
      font.title = c(14, "bold.italic", "red"),
      font.x = c(12, "bold", "#3a86d4"),
      font.y = c(12, "bold", "#E7B800"))

The same ggpubr box plot with a bold red italic title and coloured, bold axis labels styled with the font arguments of ggpar().

Vous préférez ajouter les libellés un par un après coup ? L’aide font() fait la même chose sous forme de couche — p + font("title", size = 14, color = "red", face = "bold.italic").

Changer la palette de couleurs (couleurs de groupe)

L’argument palette recolore les groupes. Il accepte :

  • un vecteur de vos propres couleurs — c("#00AFBB", "#E7B800", "#FC4E07") ;
  • "grey" pour des niveaux de gris ;
  • un nom de palette Brewer"Dark2", "RdBu", "Blues", … (RColorBrewer::display.brewer.all() les liste) ;
  • une palette de revue scientifique de ggsci — "npg", "aaas", "lancet", "jco", "ucscgb", "simpsons", …
library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

# A custom colour vector (one per group)
ggpar(p, palette = c("#00AFBB", "#E7B800", "#FC4E07"))

A ggpubr box plot of tooth length by dose recoloured with a custom three-colour palette.

Les palettes de revue et Brewer nommées sont des choix adaptés au daltonisme pour les graphiques par groupe — "jco" et "npg" sont les favorites de la maison.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p, palette = "jco")   # scientific journal palette

The same ggpubr box plot coloured with the jco scientific-journal palette.

Vous travaillez plutôt avec le graphique sous forme de couche ? p + color_palette("jco") (ou fill_palette("jco")) est l’aide équivalente.

Couleurs en gradient pour une variable continue

Quand la couleur encode une variable continue plutôt qu’un groupe, utilisez gradient_color() (pour color) ou gradient_fill() (pour fill). Ici, un nuage de points de mtcars est coloré par mpg, puis muni d’un gradient à deux puis à trois couleurs.

library(ggpubr)

p3 <- ggscatter(mtcars, x = "wt", y = "mpg", color = "mpg", size = 2)

# A diverging blue-white-red gradient
p3 + gradient_color(c("blue", "white", "red"))

A ggpubr scatter plot of car weight against miles-per-gallon with the points coloured by mpg on a blue-white-red gradient.

gradient_color() accepte aussi une seule couleur, un vecteur de deux couleurs, ou un nom de palette Brewer comme "RdYlBu". Pour une forme de point remplie (shape = 21, fill =), utilisez gradient_fill() avec la même syntaxe.

Définir les limites d’axes

xlim et ylim rognent chaque axe à une étendue c(min, max) — pratique pour faire démarrer un axe de barres à zéro ou pour zoomer sur une région.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p, ylim = c(0, 50))   # fix the y-axis from 0 to 50

A ggpubr box plot of tooth length by dose with the y-axis limits set from 0 to 50.

Échelles d’axes logarithmiques et racine carrée

xscale / yscale transforment un axe — les valeurs autorisées sont "none", "log2", "log10" et "sqrt". Ajoutez format.scale = TRUE pour afficher des étiquettes nettes (par ex. au format 2^4) sur un axe logarithmique.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p, yscale = "log2", format.scale = TRUE)   # log2 y-axis, tidy ticks

A ggpubr box plot of tooth length by dose with the y-axis on a base-2 log scale and formatted tick labels.

L’équivalent sous forme de couche est p + yscale("log2", .format = TRUE).

Faire pivoter les étiquettes d’axes

De longues étiquettes de catégories se chevauchent sur un axe des x chargé. rotate_x_text(45) incline les étiquettes des x (et rotate_y_text() celles des y) ; font("xy.text", ...) les restyle.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

p +
  font("xy.text", size = 12, color = "#3a86d4", face = "bold") +
  rotate_x_text(45)    # angle the x tick labels

A ggpubr box plot of tooth length by dose with the x-axis tick labels rotated to 45 degrees and styled bold blue.

Déplacer, restyler ou masquer la légende

L’argument legend place la légende : l’une des valeurs "top", "bottom", "left", "right", "none", ou un c(x, y) numérique entre 0 et 1 (c(1, 1) = en haut à droite à l’intérieur du panneau). Mettez legend = "none" pour la supprimer ; stylez le titre et le texte avec font("legend.title", ...) / font("legend.text", ...).

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p, legend = "right", legend.title = "Dose (mg)") +
  font("legend.title", color = "#3a86d4", face = "bold") +
  font("legend.text", color = "black")

A ggpubr box plot of tooth length by dose with the legend moved to the right and the legend title styled bold blue.

Faire pivoter tout le graphique

Pour inverser les axes — un graphique horizontal, utile quand les étiquettes de catégories sont longues — ajoutez rotate() sous forme de couche (ou passez rotate = TRUE à la construction du graphique).

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

p + rotate()   # swap x and y -> horizontal

A horizontal ggpubr box plot of tooth length by dose, with the dose categories running down the y-axis.

Ajouter des grilles, des bordures et un fond

ggpubr fournit de petites aides pour le panneau : grids() ajoute des grilles de référence, border() dessine une bordure de panneau, et bgcolor() définit le fond du panneau.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

p +
  grids(linetype = "dashed") +     # dashed reference grids
  bgcolor("#BFD5E3") +             # panel background
  border("#BFD5E3")                # matching panel border

A ggpubr box plot of tooth length by dose with dashed reference grids and a coloured panel background and border.

Retirer des composants avec rremove()

rremove() retire un composant nommé. Valeurs utiles : "grid" (ou "x.grid"/"y.grid"), "legend", "legend.title", "ticks" (ou "x.ticks"/"y.ticks"), "axis.text" (ou "x.text"/"y.text"), "xlab"/"ylab", et "axis".

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

p +
  rremove("grid") +     # drop all grid lines
  rremove("legend")     # drop the legend

A ggpubr box plot of tooth length by dose with the grid lines and the legend removed for a minimal look.

Changer de thème

Le thème par défaut de ggpubr est theme_pubr() (le thème de publication). L’argument ggtheme — disponible dans chaque fonction de tracé ggpubr — le remplace par n’importe quel thème ggplot2 : theme_bw(), theme_minimal(), theme_classic(), theme_void(), … Vous pouvez aussi ajouter un thème sous forme de couche +.

library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)

# Pass ggtheme directly to the plotting function
ggboxplot(df, x = "dose", y = "len", color = "dose",
          ggtheme = theme_minimal())

A ggpubr box plot of tooth length by dose drawn with the minimal ggplot2 theme instead of the default publication theme.

Essayez en direct

Les graphiques ci-dessus ont été rendus au moment de la construction. Vous voulez expérimenter ? Modifiez le code et appuyez sur Run — il s’exécute dans votre navigateur via webR (pas de serveur, pas d’installation). Essayez de changer la palette en "npg", de définir ylim = c(0, 60), de passer yscale à "sqrt", ou de déplacer legend = "bottom".

Vous travaillez en Python ? Un guide de personnalisation matplotlib/seaborn arrive dans la série Python.

🟢 Avec un agent IA

Demandez à Prova « comment mettre l’axe des y de mon graphique ggpubr sur une échelle logarithmique et recolorer les groupes avec une palette adaptée au daltonisme ? » — elle répond avec du code ggpar() que vous pouvez exécuter sur votre propre data frame, ce qui rend la personnalisation reproductible. The runtime is the judge. Demander à Prova →

Problèmes courants

  • La palette est ignorée. Une palette nommée comme "jco" ne colore que lorsqu’une variable est mappée à color ou fill (par ex. color = "dose"). Sans attribut esthétique de groupement, il n’y a rien à recolorer.
  • palette ne fait rien pour une couleur continue. palette est pour les groupes discrets. Pour une couleur qui encode une variable numérique, utilisez plutôt gradient_color() / gradient_fill().
  • yscale = "log2" provoque une erreur ou vide le graphique. Une échelle logarithmique a besoin de valeurs y strictement positives — les zéros ou les négatifs disparaissent. Vérifiez l’étendue des données, et ajoutez format.scale = TRUE pour des étiquettes lisibles.
  • Les étiquettes se chevauchent. Faites-les pivoter avec rotate_x_text(45) (ou 90) ; pour un graphique entièrement horizontal, ajoutez plutôt rotate() afin que les longues étiquettes descendent le long de l’axe des y.
  • Un theme() personnalisé a défait l’apparence ggpubr. ggpubr applique déjà theme_pubr() ; ne passez ggtheme = (ou n’ajoutez une couche de thème) que lorsque vous voulez délibérément remplacer le réglage de publication par défaut.

Questions fréquentes

Utilisez ggpar() : ggpar(p, title = "My title", xlab = "Dose (mg)", ylab = "Tooth length") définit le titre, le sous-titre, la légende de bas de figure et les libellés d’axes en un seul appel. Les mêmes arguments peuvent être passés directement à la construction du graphique — ggboxplot(df, x = "dose", y = "len", title = "My title", xlab = "Dose (mg)") — si bien que vous avez rarement besoin d’une couche labs() séparée.

Définissez l’argument palette : un vecteur de couleurs (c("#00AFBB", "#E7B800")), "grey", un nom Brewer ("Dark2"), ou une palette de revue ("jco", "npg", "lancet"). Il recolore la variable mappée à color ou fill. Pour une échelle de couleurs continue, utilisez gradient_color() / gradient_fill() au lieu de palette.

Passez yscale = "log2" (ou "log10", "sqrt") à ggpar() — par ex. ggpar(p, yscale = "log2", format.scale = TRUE), où format.scale = TRUE affiche des étiquettes d’exposants nettes. Les valeurs doivent être strictement positives pour une échelle logarithmique. L’équivalent sous forme de couche est p + yscale("log2", .format = TRUE).

Utilisez l’argument legend : ggpar(p, legend = "bottom") (valeurs autorisées : "top", "bottom", "left", "right", "none", ou un c(x, y) numérique à l’intérieur du panneau). legend = "none" la supprime entièrement ; rremove("legend") fait la même chose sous forme de couche. Stylez le texte de la légende avec font("legend.title", ...) et font("legend.text", ...).

ggpar() est le personnalisateur en un appel de ggpubr : il définit les titres, les libellés et limites d’axes, les palettes, les échelles d’axes, la rotation des étiquettes, la légende et le thème d’un graphique que vous avez déjà construit. Chacun de ses arguments peut aussi être passé directement à la fonction de tracé (ggboxplot(), ggscatter(), …) : utilisez donc ggpar() pour retoucher un graphique stocké, ou passez les arguments en ligne quand vous en construisez un de zéro.

Testez vos connaissances

Complétez l’appel à ggpar() pour que la boîte à moustaches utilise la palette "jco", renomme l’axe des y en “Tooth length”, fixe les limites de l’axe des y de 0 à 40, et déplace la légende en bas.

# ggpar() takes these arguments here:
#   palette = "jco",
#   ylab = "Tooth length",
#   ylim = c(0, 40),
#   legend = "bottom"
library(ggpubr) df <- ToothGrowth df$dose <- factor(df$dose) p <- ggboxplot(df, x = "dose", y = "len", color = "dose") ggpar(p, palette = "jco", ylab = "Tooth length", ylim = c(0, 40), legend = "bottom")
library(ggpubr)
df <- ToothGrowth
df$dose <- factor(df$dose)
p <- ggboxplot(df, x = "dose", y = "len", color = "dose")

ggpar(p,
      palette = "jco",
      ylab = "Tooth length",
      ylim = c(0, 40),
      legend = "bottom")

Vérification rapide. Vous voulez colorer les points d’un nuage selon une variable continue comme mpg. Lequel est correct — palette = "jco", ou gradient_color() ? (Réponse : gradient_color()palette est pour les groupes discrets ; une couleur continue a besoin d’un gradient.)

Conclusion

Vous avez maintenant toute la boîte à outils de personnalisation ggpubr en un seul endroit. ggpar() définit le titre, le sous-titre, la légende de bas de figure et les libellés d’axes, change les palettes de groupe (et gradient_color() / gradient_fill() gère la couleur continue), rogne les limites d’axes et les transforme en échelle logarithmique ou racine carrée, fait pivoter les étiquettes, et déplace ou masque la légende — tandis que grids() / border() / bgcolor() stylent le panneau, rremove() retire des composants, et ggtheme = change de thème. Parce que chacun de ces réglages est aussi un simple argument de ggboxplot(), ggscatter() et compagnie, vous pouvez régler n’importe quel graphique ggpubr soit à la construction soit après coup.

Pour la grammaire ggplot2 sous-jacente derrière chacun de ces ajustements — labs() pour les titres, scale_*_manual() pour les couleurs, coord_trans() / scale_y_log10() pour les échelles d’axes — voir les leçons de la série ggplot2 liées ci-dessous.

Leçons connexes

Vous préférez un livre ? R Graphics Essentials est disponible en PDF téléchargeable — toutes les leçons de cette série, hors ligne et à vous.

Obtenir le livre (PDF) →Les leçons restent gratuites en ligne.
Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série ggpubr — 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

Cette leçon est reproductible : les figures sont exécutées au moment de la construction (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.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Personnaliser un graphique ggpubr en R avec ggpar()},
  date = {2026-06-22},
  url = {https://www.datanovia.com/learn/data-visualization/ggpubr/customize},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Personnaliser un graphique ggpubr en R avec ggpar().” 2026. June 22. https://www.datanovia.com/learn/data-visualization/ggpubr/customize.