Cet article montre comment changer la couleur de fond et le quadrillage d’un thème ggplot.
Le thème par défaut d’un graphique ggplot2 a une couleur de fond grise. Vous pouvez facilement et rapidement changer cette couleur pour une couleur de fond blanche en utilisant les fonctions de thème, telles que theme_bw()
, theme_classic()
, theme_minimal()
ou theme_light()
(Voir galerie de thèmes ggplot2).
Une autre alternative est de modifier directement les arguments panel.background
et panel.grid
dans la fonction theme()
.
Dans ce tutoriel graphique R, vous apprendrez à:
- Changer la couleur d’arrière-plan d’un ggplot à l’aide d’une couleur personnalisée, par exemple bleu clair.
- Supprimez le fond gris par défaut de ggplot et remplacez-le par une couleur d’arrière-plan blanche.
- Supprimer la bordure du panneau et les traits des grilles de fond (grilles mineures et majeures).
- Créez et enregistrez un ggplot à fond transparent (c.-à-d., un ggplot sans background).
- Créer un ggplot avec une couleur de fond foncée / noire.
Sommaire:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RFonctions R clés de gglot2
Options clés du thème gggplot2 pour modifier le panneau du graphique et l’arrière-plan:
theme(
plot.background = element_rect(), # Background de l'ensemble du graphique
panel.background = element_rect(), # Arrière-plan de la zone de traçage
panel.border = element_rect(), # Bordure autour de la zone de traçage.
# l'argument de remplissage `fill` devrait être NA
panel.grid = element_line(), # Toutes les lignes de la grille
panel.grid.major = element_line(), # Lignes principales du quadrillage
panel.grid.minor = element_line(), # Lignes mineures du quadrillage
panel.grid.major.x = element_line(), # Lignes verticales principales du quadrillage
panel.grid.major.y = element_line(), # Lignes horizontales principales du quadrillage
panel.grid.minor.x = element_line(), # Lignes verticales mineures de la grille
panel.grid.minor.y = element_line() # Lignes verticales principales du quadrillage
)
Arguments des fonctions d’aide:
element_line(color, size, linetype)
. Modifier la taille et le type de couleur des lignes de la grille.element_rect(fill, color, size, linetype)
. Modifier le remplissage de l’arrière-plan d’un élément rectangulaire, ainsi que la couleur, la taille et le type de trait de la bordure.
Pour supprimer une grille particulière, utilisez element_blank()
pour l’argument de thème correspondant. Par exemple, pour supprimer les lignes principales de la grille pour l’axe des x, utilisez ceci: p + theme(panel.grid.major.x = element_blank())
.
Créer un ggplot de base
library(ggplot2)
p <- ggplot(ToothGrowth, aes(factor(dose), len)) +
geom_boxplot()
p
Modifier la couleur de fond et les lignes de grille
- Modifier la couleur de fond du panneau
- Modifier la couleur d’arrière-plan du graphique
# 1. Changer la couleur d'arrière-plan du panneau graphique en bleu clair
# et la couleur des lignes principales/grilles au blanc
p + theme(
panel.background = element_rect(fill = "#BFD5E3", colour = "#6D9EC1",
size = 2, linetype = "solid"),
panel.grid.major = element_line(size = 0.5, linetype = 'solid',
colour = "white"),
panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
colour = "white")
)
# 2. Changer la couleur d'arrière-plan du graphique (pas celle du panneau)
p + theme(plot.background = element_rect(fill = "#BFD5E3"))
Supprimer la bordure du panneau et les lignes de grilles d’arrière-plan
Fonction R pour masquer les bordures et les lignes de grille du panneau graphique: element_blank()
.
p + theme(
# Masquer les bords des panneaux et supprimer les lignes de grilles
panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# Modifier le trait des axes
axis.line = element_line(colour = "black")
)
Supprimer la couleur d’arrière-plan grise
- Solution 1 : Utilisez les fonctions de thèmes pour vous débarrasser du fond gris (@ref(ggplot-themes-gallery).
p + theme_bw() # Thème noir et blanc
p + theme_classic() # Thème classique
- Solution 2 : Créer, pas à pas, un ggplot sur fond blanc:
p + theme(
# Enlever le bord du panneau
panel.border = element_blank(),
# Supprimer les lignes de la grille du panneau
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# Supprimer l'arrière-plan du panneau
panel.background = element_blank(),
# Ajouter le trait des axes
axis.line = element_line(colour = "grey")
)
Réaliser un ggplot sur fond transparent
Dans cette section, vous apprendrez comment créer et sauvegarder un ggplot avec un fond transparent.
- Solution 1 : Utilisez la fonction theme_transparent() [dans le package ggpubr]. Tout d’abord, installez-le avec
install.packages("ggpubr")
, puis tapez ceci:
transparent.plot <- p + ggpubr::theme_transparent()
ggsave(filename = "transparent-background.png",
plot = transparent.plot,
bg = "transparent",
width = 2, height = 1.5, units = "in")
- Solution 2 : Créez un fond transparent en commençant par
theme_void()
:
p + theme_void() + # Thème vide sans le trait et le texte des axes
theme(
panel.background = element_rect(fill = "transparent", colour = NA),
plot.background = element_rect(fill = "transparent", colour = NA),
legend.background = element_rect(fill = "transparent", colour = NA),
legend.box.background = element_rect(fill = "transparent", colour = NA)
)
Créer un ggplot sur fond noir
Commencez par créer un diagramme de dispersion simple:
sp <- ggplot(iris, aes(Sepal.Length, Sepal.Width))+
geom_point(aes(color = Species, shape = Species))+
stat_smooth(aes(color = Species, fill = Species),
method = "lm", alpha = 0.2)+
scale_color_manual(values = c("#E4F00A", "white", "#22FF00")) +
scale_fill_manual(values = c("#E4F00A", "white", "#22FF00"))
Utiliser la fonction de thème sombre - theme_dark()
:
sp + theme_dark()
Créer un ggplot avec un fond noir:
sp + theme(
# se débarrasser des grilles de panneaux
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# Modifier le graphique et l'arrière-plan du panneau
plot.background=element_rect(fill = "gray"),
panel.background = element_rect(fill = 'black'),
# Modifier la légende
legend.position = c(0.6, 0.07),
legend.direction = "horizontal",
legend.background = element_rect(fill = "black", color = NA),
legend.key = element_rect(color = "gray", fill = "black"),
legend.title = element_text(color = "white"),
legend.text = element_text(color = "white")
)
Conclusion
Cet article montre comment changer la couleur de fond et le quadrillage d’un thème ggplot. Les éléments essentiels sont résumés ci-dessous:
- Créer un exemple de ggplot:
library(ggplot2)
p <- ggplot(ToothGrowth, aes(factor(dose), len)) +
geom_boxplot()
p
- Modifier la couleur d’arrière-plan de ggplot:
- utiliser les thèmes standards de ggplot2 (theme_classic(), theme_bw(), theme_minmal(), theme_light(), etc)
- ou, modifiez la fonction de thème comme suit.
# Créer un ggplot sur fond blanc
p + theme(
plot.background = element_rect(fill = "white"),
panel.background = element_rect(fill = "white"),
axis.line.x = element_line(color = "grey")
)
- Créer un ggplot sur fond transparent. La solution la plus simple est d’utiliser la fonction theme_transparent() [dans ggpubr]
p + ggpubr::theme_transparent()
Version: English
No Comments