Chapitre 11 Utiliser le theme() pour faire bonne figure!

11.1 Introduction aux thèmes

Dans ce livre, nous avons utilisé theme_classic() pour les figures, puisque le fond gris défini par défaut peut rendre certaines couleurs plus difficiles à voir.

Mais, comme toute autre partie de la grammaire graphique, nous pouvons modifier le thème du graphique pour l’adapter à nos besoins, ou à notre goût !

Il y a beaucoup trop d’éléments de thème intégrés à la librairie ggplot2 pour les mentionner ici, mais vous pouvez trouver une liste complète dans la vignette theme. Au lieu de modifier les nombreux éléments contenus dans theme(), vous pouvez partir des fonctions de thème, qui contiennent un ensemble spécifique d’éléments à partir desquels vous pouvez commencer. Voici quelques exemples :

11.1.1 Thème par défaut: Gris

# Theme grey
pp + scale_colour_grey() + # Dessiner les points en gris
  theme_grey() + # Utiliser le fond gris
  labs(title = "Défaut: Thème gris") # Titre de la figure

11.1.2 Thème classique

pp + scale_colour_grey() + # Dessiner les points en gris
  theme_classic() + # Utiliser un fond blac
  labs(title = "Thème classique") # Titre de la figure

11.1.3 Thème minimal

pp + scale_colour_grey() +
  theme_minimal() + # Utiliser un fond blanc et un quadrillage
  labs(title = "Thème minimal") 

11.1.4 Définir le thème pour plusieurs graphiques

Comme vous avez pu le remarquer, le code de ggplot peut rapidement devenir long lorsque vous devez constamment spécifier les caractéristiques du théme. Lorsque vous créez plusieurs graphes et que vous voulez qu’ils aient tous le même thème, vous pouvez simplement utiliser theme_set() pour définir un thème pour tous les figures qui sont générés par la suite, ou theme_update() pour modifier les éléments d’un thème existant sans réécrire tous les autres éléments du thème.

11.1.4.1 Définir le thème

# Définir le thème noir et blanc pour tous les figures qui
# suivent
theme_set(theme_bw())  # Note: le fond est blanc avec un cadre noir
pp

Après avoir utilisé theme_set(), notre graphique pp est généré avec le thème noir et blanc theme_bw(). Tous les futurs figures produites dans votre session R seront également générées avec ce thème.

11.1.4.2 Mettre le thème à jour

Peut-être que les le quadrillage mineur n’est pas nécessaire pour cette figure, bien que nous aimons tout le reste de notre thème. Plutôt que de réécrire plusieurs lignes de code pour redéfinir le thème, nous pouvons simplement utiliser theme_update() pour ajuster un élément spécifique de notre thème.

theme_update(panel.grid.minor = element_blank())  # Enlever le quadrillage 'minor'
pp

Voilà! C’est beaucoup mieux!

11.2 Les élements d’un thème

Voici une infographie utile pour vous aider à personnaliser votre thème!

Fiche de référence du thème ggplot2 (EN) par Isabella Benabaye ([source](https://isabella-b.com/blog/ggplot2-theme-elements-reference/)).

Figure 11.1: Fiche de référence du thème ggplot2 (EN) par Isabella Benabaye (source).

11.3 Créer votre propre thème

Une fois que vous aurez appris à personnaliser les thèmes ggplot existants, vous pourrez créer votre propre thème pour vos graphiques. C’est un excellent moyen de faire ressortir vos figures dans une présentation, une publication, un site Web ou tout autre endroit!

Voici un exemple:

mytheme <- theme_bw() + # Vous pouvez partir d'un thème existant pour mettre en place certains éléments de base.
           theme(plot.title = element_text(colour = "red")) +
           theme(legend.position = c(0.9, 0.9))
pp + mytheme # A# Appliquez-le à votre figure!

11.4 Plus de thèmes

La librairie ggthemes est un grand projet développé par Jeffrey Arnold sur GitHub et également hébergé sur le dépôt CRAN. Le paquet contient de nombreux thèmes, géomètres et rampes de couleurs pour ggplot2 qui sont basés sur les travaux de certains des noms les plus renommés et les plus influents dans le monde de la visualisation de données, des classiques comme Edward Tufte aux journalistes et programmeurs de données modernes du blog FiveThirtyEight.

La librairie peut être installée comme suit:

install.packages("ggthemes")
library(ggthemes)

Nous pouvons ensuite appliquer certains de ces thèmes (et plus encore) à notre figure!

# Utilisons le thème du blog FiveThirtyEight et la palette
# de couleurs de Tableau.
pp + theme_fivethirtyeight() + scale_color_tableau()

# Utilisons le thème de Tufte 'Données maximales, encre
# minimale'.
pp + theme_tufte()