Comment résoudre le problème : l’esthétique doit être soit de longueur 1, soit identique aux données.
Une erreur que vous pouvez rencontrer dans R est :
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Cette erreur se produit lorsque vous tentez de spécifier les couleurs de remplissage à utiliser dans un tracé ggplot2, mais que le nombre de couleurs que vous avez spécifié est différent de 1 ou différent du nombre total d’objets à remplir.
L’exemple suivant montre comment corriger cette erreur dans la pratique.
Comment reproduire l’erreur
Supposons que nous travaillions avec l’ensemble de données R intégré appelé airquality :
#view first six lines of airquality dataset
head(airquality)
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
Supposons maintenant que nous essayions de créer plusieurs diagrammes en boîte pour visualiser la distribution des valeurs d’ozone pour chaque mois :
library(ggplot2)
#attempt to create multiple boxplots
ggplot(data = airquality, aes(x=as.character(Month), y=Temp)) +
geom_boxplot(fill=c('steelblue', 'red'))
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Nous recevons une erreur car il y a 5 mois uniques dans l’ensemble de données (nous allons donc créer 5 boxplots) mais nous n’avons fourni que deux couleurs à l’argument de remplissage .
Comment réparer l’erreur
Il existe deux manières de corriger cette erreur :
Méthode 1 : n’utiliser qu’une seule couleur dans l’argument de remplissage
Nous pourrions choisir de n’utiliser qu’une seule couleur dans l’argument fill :
library(ggplot2)
ggplot(data = airquality, aes(x=as.character(Month), y=Temp)) +
geom_boxplot(fill=c('steelblue'))
Cela nous permet de remplir chaque boîte à moustaches avec la même couleur.
Méthode 2 : utiliser le même nombre de couleurs que le nombre de boîtes à moustaches
Nous pourrions également spécifier cinq couleurs à utiliser, car cela correspond au nombre de boîtes à moustaches que nous allons créer :
library(ggplot2)
ggplot(data = airquality, aes(x=as.character(Month), y=Temp)) +
geom_boxplot(fill=c('steelblue', 'red', 'purple', 'green', 'orange'))
Nous ne recevons aucune erreur car le nombre de couleurs que nous avons fourni correspond au nombre de boxplots.
Ressources additionnelles
Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes dans R :
Comment réparer : valeur discrète fournie à l’échelle continue
Comment réparer : l’argument n’est ni numérique ni logique : renvoie na
Comment réparer : le remplacement a une longueur nulle