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 RGGPlot 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-plantheme_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 minimalistetheme_economist()
: Thème basé sur les graphiques de la revue économiquetheme_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.
- Boxplot 1:
- un point indique la médiane,
- un gap (vide) indique l’écart interquartile,
- et tapisse les moustaches
- 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èmeelement_text(face, color, size, hjust, vjust, angle)
pour modifier les éléments de texteelement_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 functiontheme_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