Lösung: die ästhetik muss entweder die länge 1 haben oder mit den daten übereinstimmen.
Ein Fehler, der in R auftreten kann, ist:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Dieser Fehler tritt auf, wenn Sie versuchen, Füllfarben für die Verwendung in einem ggplot2-Plot anzugeben, die Anzahl der von Ihnen angegebenen Farben jedoch nicht gleich 1 oder nicht gleich der Gesamtzahl der zu füllenden Objekte ist.
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Nehmen wir an, wir arbeiten mit dem integrierten R-Datensatz namens „airquality“ :
#view first six lines of air quality 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
Nehmen wir nun an, wir versuchen, mehrere Boxplots zu erstellen, um die Verteilung der Ozonwerte für jeden Monat zu visualisieren:
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
Wir erhalten eine Fehlermeldung, weil der Datensatz fünf eindeutige Monate enthält (wir werden also fünf Boxplots erstellen), aber wir haben nur zwei Farben für das Füllargument bereitgestellt.
So beheben Sie den Fehler
Es gibt zwei Möglichkeiten, diesen Fehler zu beheben:
Methode 1: Verwenden Sie nur eine Farbe im Füllargument
Wir könnten uns dafür entscheiden, nur eine Farbe im Füllargument zu verwenden:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))
Dadurch können wir jedes Boxplot mit der gleichen Farbe füllen.
Methode 2: Verwenden Sie die gleiche Anzahl an Farben wie an Boxplots
Wir könnten auch fünf zu verwendende Farben angeben, da dies der Anzahl der Boxplots entspricht, die wir erstellen werden:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))
Wir erhalten keine Fehlermeldungen, da die Anzahl der von uns bereitgestellten Farben mit der Anzahl der Boxplots übereinstimmt.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie das Problem: Diskreter Wert wird auf kontinuierlicher Skala bereitgestellt
Lösung: Das Argument ist weder numerisch noch logisch: Gibt na zurück
So beheben Sie das Problem: Die Ersetzung hat die Länge Null