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
+ scale_colour_grey() + # Dessiner les points en gris
pp theme_grey() + # Utiliser le fond gris
labs(title = "Défaut: Thème gris") # Titre de la figure
11.1.2 Thème classique
+ scale_colour_grey() + # Dessiner les points en gris
pp theme_classic() + # Utiliser un fond blac
labs(title = "Thème classique") # Titre de la figure
11.1.3 Thème minimal
+ scale_colour_grey() +
pp 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!
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:
<- theme_bw() + # Vous pouvez partir d'un thème existant pour mettre en place certains éléments de base.
mytheme theme(plot.title = element_text(colour = "red")) +
theme(legend.position = c(0.9, 0.9))
+ mytheme # A# Appliquez-le à votre figure! pp
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.
+ theme_fivethirtyeight() + scale_color_tableau() pp
# Utilisons le thème de Tufte 'Données maximales, encre
# minimale'.
+ theme_tufte() pp