GGPlot Galerie de Thèmes



GGPlot Galerie de Thèmes

Dans ce tutoriel graphique R, nous présentons une galerie de thèmes ggplot.

Vous apprendrez à:

  • Changer le thème ggplot par défaut en utilisant la liste des thèmes standards disponibles dans le package R ggplot2. Notre sélection des meilleurs thèmes ggplot pour les publications ou présentations professionnelles, comprend : theme_classic(), theme_minimal() et theme_bw(). Un autre thème célèbre est le thème sombre : theme_dark().
  • Utilisez d’autres exemples utiles de thèmes ggplot2 disponibles dans le package R ggthemes. Ceux-ci incluent theme_tufte(), theme_economist() et theme_hc(). Vous verrez aussi comment créer un boxplot tufte minimaliste.
  • Modifier, en une seule fois, tous les éléments de texte du thème en spécifiant l’argument ggplot base_size dans les fonctions de thème. Exemple: p + theme_minimal(base_size = 18).
  • Changer le thème pour toute la session en utilisant theme_set(). Par exemple, si vous tapez theme_set(theme_classic(base_size = 16)) dans la console R, alors le thème classique sera automatiquement appliqué à chaque graphe que vous créez. La fonction theme_set() remplace complètement le thème actif actuel.
  • Créez votre propre thème personnalisé.


Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

GGPlot basique

Data: ToothGrowth

# Convertir la colonne `dose` en variable factorielle
data("ToothGrowth")
ToothGrowth$dose <- as.factor(ToothGrowth$dose)

# Créer un boxplot simple
library(ggplot2)
p <- ggplot(ToothGrowth, aes(x = dose, y = len)) + 
  geom_boxplot()

Changer de thème

Utiliser les thèmes disponibles dans ggplot2

Plusieurs fonctions simples sont disponibles dans le package ggplot2 pour définir facilement un thème ggplot. Il s’agit notamment:

  • theme_gray(): Couleur de fond gris et lignes de grille blanches. Mettre en avant les données pour faciliter les comparaisons.
  • theme_bw(): Fond blanc et lignes de grille grises. Peut fonctionner mieux pour les présentations affichées avec un projecteur.
  • theme_linedraw(): Un thème aux traits noirs avec différentes largeurs sur fond blanc, rappelant un dessin au trait.
  • theme_light(): Un thème similaire à theme_linedraw() mais avec des lignes et des axes gris clair, pour diriger plus d’attention vers les données.
p + theme_gray(base_size = 14) 

p + theme_bw()

p + theme_linedraw()

p + theme_light()

  • theme_dark(): Identique à theme_light mais avec un fond sombre. Utile pour faire ressortir les lignes fines et colorées.
  • theme_minimal(): Un thème minimal sans annotations d’arrière-plan
  • theme_classic(): Un thème classique, avec des lignes sur les axes x et y et pas de lignes de grille.
  • theme_void(): un thème complètement vide, utile pour les graphes avec des coordonnées non standard ou pour les dessins.
p + theme_dark() 

p + theme_minimal()

p + theme_classic()

p + theme_void()

Utiliser les ggthemes

Le package R ggthemes fournit une autre galerie de thèmes ggplot personnalisés, qui incluent:

  • theme_tufte(): un thème minimaliste
  • theme_economist(): Thème basé sur les graphiques de la revue économique
  • theme_stata(): thème basé sur des schémas graphiques de stata.
  • theme_hc(): Thème basé sur Highcharts JS

Pour utiliser ces thèmes, installez et chargez d’abord le package ggthemes comme suit :

install.packages("ggthemes") # Installer 

library(ggthemes) # Charger

Ensuite, créez deux ggplots de base : diagramme de dispersion et boxplot.

# Diagramme de dispersion
sp <- ggplot(mtcars, aes(wt, mpg)) +
  geom_point() 
sp

# Boxblot
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
bxp <- ggplot(ToothGrowth, aes(x = dose, y = len)) +
  geom_boxplot(aes(fill = dose))
bxp

theme_tufte

Fonctions R clés:

  • theme_tufte() : met en place le theme tufte
  • geom_tufteboxplot() : Créer un boxplot tufte
  • geom_rangeframe() : Étendre les lignes des axes au maximum et au minimum des données

Créer un nuage de points avec le thème tufte:

library(ggthemes)
sp + geom_rangeframe() +  theme_tufte()

Créer un boxplot tufte. La fonction geom_tufteboxplot() crée plusieurs variantes des boxplots minimalist de Tufte. Le code R suivant, va créer deux types de boxplots.

  1. Boxplot 1:
    • un point indique la médiane,
    • un gap (vide) indique l’écart interquartile,
    • et tapisse les moustaches
  2. Boxplot 2:
    • une ligne large indique l’écart interquartile,
    • un gap (vide) indique la médiane,
    • et les lignes indiquent le minimum et le maximum
p <- ggplot(ToothGrowth, aes(factor(dose), len)) +
  theme_tufte(ticks = FALSE)

# Box plot 1
p + geom_tufteboxplot()

# Box plot 2
p + geom_tufteboxplot(median.type = "line", 
                      whisker.type = 'line',
                      hoffset = 0, width = 3)

theme_economist

Fonctions R clés:

  • theme_economist()
  • scale_fill_economist()
  • scale_color_economist()

Créer un boxplot avec le thème economist:

bxp + theme_economist() + scale_fill_economist()

theme_stata

Fonctions R clés:

  • theme_stata()
  • scale_fill_stata()
  • scale_color_stata()
bxp + theme_stata() + scale_fill_stata()

theme_hc

bxp + theme_hc()+ scale_colour_hc()

Remplacer le thème actuel : theme_set

La fonction theme_set() peut être utilisée pour changer le thème de la session entière. Il retourne l’ancien thème, pour que nous puissions le restaurer plus tard.

p <- ggplot(ToothGrowth, aes(x = dose, y = len)) + 
  geom_boxplot()
# Utiliser theme_bw()
old.theme <- theme_set(theme_bw())
p

# Restaurer l'ancien thème
theme_set(old.theme)
p

Modifier base_size et base_family dans le thème ggplot

Notez que les fonctions thématiques peuvent prendre les deux arguments suivants :

  • base_size : taille de la police de base (pour changer la taille de tous les éléments de texte du graphe)
  • base_family : police de base

Par exemple, la taille de tous les éléments de texte du graphique peut être facilement modifiée en même temps, à l’aide de la commande:

p + theme_gray(base_size = 18, base_family = "Times")

Créer un thème personnalisé

La fonction theme() est utilisée pour contrôler l’apparence d’un graphique ggplot2, y compris

  • Éléments de ligne : lignes des axes, lignes des grilles mineures et principales, bordure du panneau graphique, graduations des axes couleur de fond, etc.
  • Eléments de texte : titre du graphique, titres des axes, titre et texte de la légende, textes des graduations des axes, etc.
  • Eléments rectangulaires : arrière-plan du graphique, background du panneau graphique, fond de la légende, etc.

Il existe une fonction spécifique pour modifier chacun de ces trois éléments :

  • element_line(color, size, linetype) pour modifier les éléments de ligne du thème
  • element_text(face, color, size, hjust, vjust, angle) pour modifier les éléments de texte
  • element_rect(fill, color, size, linetype) pour modifier les éléments du rectangle

Notez que, chacun des éléments du thème peut être supprimé en utilisant la fonction element_blank().

La façon la plus simple de créer un thème personnalisé est, par exemple, d’extraire et de modifier le code R de la fonction theme_gray() ou toute autre fonction de thèmes [theme_bw(), theme_classic(), etc].

  • Construisez votre thème à partir de rien en commençant par le code source de la fonction theme_gray():
theme_gray

function (base_size = 11, base_family = "") {
  
 half_line <- base_size/2
 
theme(
  ...
  axis.text = element_text(size = rel(0.8), colour = "grey30"),
  ...
  )

}
  • Créez un nouveau thème appelé theme_bluewhite() by starting with the source code of the function theme_bw(). Nous ne remplacerons que quelques éléments de thème.
# Créer un nouveau thème
theme_bluewhite <- function (base_size = 11, base_family = "") {
    theme_bw() %+replace% 
    theme(
      panel.grid.major  = element_line(color = "white"),
      panel.background = element_rect(fill = "lightblue"),
      panel.border = element_rect(color = "lightblue", fill = NA),
      axis.line = element_line(color = "lightblue"),
      axis.ticks = element_line(color = "lightblue"),
      axis.text = element_text(color = "steelblue")
      )
}

# Utiliser notre nouveau thème
ggplot(ToothGrowth, aes(dose, len)) +
  geom_boxplot() +
  theme_bluewhite()

Conclusion

Nous présentons une liste de thèmes ggplot pour personnaliser facilement vos graphiques. Nous décrivons également comment créer un thème ggplot personnalisé.

Les points principaux sont les suivants.

  • Créer un exemple de ggplot:
library(ggplot2)
p <- ggplot(ToothGrowth, aes(x = dose, y = len)) + 
  geom_boxplot()
  • Modifiez le theme ggplot en utilisant l’un des thèmes professionnels suivants:
    • theme_bw(), theme_minimal(), theme_classic() et theme_dark()[dans le package ggplot2]
    • theme_tufte() et theme_economist() [dans ggthemes]
p + theme_minimal()



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