GGPLOT Background du Thème : Couleur et Quadrillage



GGPLOT Background du Thème : Couleur et Quadrillage

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 R

Fonctions 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

  1. Modifier la couleur de fond du panneau
  2. 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")

Couleur de fond transparente

  • 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

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments