GGPlot AES : Comment Assigner les Esthétiques dans GGPlot2



GGPlot AES : Comment Assigner les Esthétiques dans GGPlot2

Dans cet article, vous apprendrez à mapper les variables des données en fonction des propriétés visuelles des graphiques ggplot (points, barres, box plots, etc.).

Ces caractéristiques visuelles sont appelées esthétiques (ou aes) et comprennent:

  • couleur et remplissage
  • forme des points
  • type de ligne
  • size
  • group
  • etc

Les mappages d’esthétiques peuvent être définis dans ggplot()' et dans des fonctions individuelles (telles quegeom_point(),geom_line()`, etc).



Sommaire:

Livre Apparenté

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

Prérequis

Charger les packages requis et définir la fonction thème theme_bw() comme thème par défaut:

library(ggplot2) 
theme_set(theme_bw())

Notions de base

Mapper l’esthétique à des variables et des fonctions des variables:

# Mapper les esthétiques aux variables
ggplot(ToothGrowth, aes(x = supp, y = len)) +
  geom_boxplot()

# Mapper les esthétiques aux fonctions des variables
ggplot(mtcars, aes(x = mpg ^ 2, y = wt / cyl)) +
  geom_point()

L’esthétique peut aussi être mappée à des constantes:

# mapper x à une constante : 1
ggplot(ToothGrowth, aes(x = factor(1), y = len)) +
  geom_boxplot(width = 0.5) +
  geom_jitter(width = 0.1)

Notez que, aes() est passé soit à ggplot() soit à une couche spécifique. L’esthétique spécifiée dans ggplot() est utilisée par défaut pour chaque couche.

Par exemple:

# Utilisez ceci 
ggplot(mpg, aes(displ, hwy)) + geom_point()

# ou ceci
ggplot(mpg) + geom_point(aes(displ, hwy))

Couleur et remplissage

# Couleur
ggplot(ToothGrowth, aes(supp, len)) +
  geom_boxplot(aes(color = supp))

# Remplir
ggplot(ToothGrowth, aes(supp, len)) +
  geom_boxplot(aes(fill = supp))

Forme

Modifier la forme des points par groupe:

ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_point(aes(shape = Species))

Groupe et type de ligne

Dans le line plot, par exemple, l’esthétique de groupe est utilisée pour s’assurer que les lignes sont tracées séparément pour chaque groupe

# Data
df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
                dose=rep(c("D0.5", "D1", "D2"),2),
                len=c(6.8, 15, 33, 4.2, 10, 29.5))

head(df2, 4)
##   supp dose  len
## 1   VC D0.5  6.8
## 2   VC   D1 15.0
## 3   VC   D2 33.0
## 4   OJ D0.5  4.2
# Créer un line plot groupé
ggplot(df2, aes(dose, len, group = supp)) +
  geom_line() +
  geom_point()


# Changer le type de ligne par groupe
ggplot(df2, aes(dose, len, group = supp)) +
  geom_line(aes(linetype = supp)) +
  geom_point()

Étiquette

ggplot(df2, aes(dose, len, group = supp)) +
  geom_line() +
  geom_point() +
  geom_text(aes(label = len, vjust = -0.5))

Créer des wrappers (fonctions enveloppantes) autour des fonctions ggplot2

aes() met des guillemets automatiquement autour de tous ses arguments, vous devez donc utiliser la “tidy-evaluation” pour créer des wrappers autour des fonctions ggplot2.

  1. Cas le plus simple : votre wrappers prend des points
scatter_plot <- function(data, ...) {
  ggplot(data) + geom_point(aes(...))
}
scatter_plot(mtcars, disp, drat)

  1. Votre wrapper a des arguments nommés. Vous avez besoin de “enquote et unquote”
scatter_plot <- function(data, x, y) {
  x <- enquo(x)
  y <- enquo(y)

  ggplot(data) + geom_point(aes(!!x, !!y))
}
scatter_plot(mtcars, disp, drat)

Notez que les utilisateurs de votre wrapper peuvent utiliser leurs propres fonctions dans les expressions avec “quotes” (guillemets).

cut3 <- function(x) cut_number(x, 3)
scatter_plot(mtcars, cut3(disp), drat)



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