Oplossing: de esthetiek moet lengte 1 hebben of hetzelfde zijn als de gegevens.
Een fout die je tegen kunt komen in R is:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Deze fout treedt op wanneer u opvulkleuren probeert op te geven voor gebruik in een ggplot2-plot, maar het aantal kleuren dat u hebt opgegeven is niet gelijk aan 1 of niet gelijk aan het totale aantal te vullen objecten.
Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt corrigeren.
Hoe de fout te reproduceren
Laten we zeggen dat we werken met de ingebouwde R-dataset genaamd luchtkwaliteit :
#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
Stel nu dat we proberen verschillende boxplots te maken om de verdeling van de ozonwaarden voor elke maand te visualiseren:
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
We ontvangen een foutmelding omdat de dataset vijf unieke maanden bevat (we zullen dus vijf boxplots maken), maar we hebben slechts twee kleuren aan het opvullingsargument opgegeven.
Hoe u de fout kunt oplossen
Er zijn twee manieren om deze fout op te lossen:
Methode 1: Gebruik slechts één kleur in het opvulargument
We kunnen ervoor kiezen om slechts één kleur in het opvulargument te gebruiken:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))
Hierdoor kunnen we elke boxplot met dezelfde kleur vullen.
Methode 2: Gebruik hetzelfde aantal kleuren als het aantal boxplots
We kunnen ook vijf kleuren opgeven die we willen gebruiken, omdat dit overeenkomt met het aantal boxplots dat we gaan maken:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))
We krijgen geen foutmeldingen omdat het aantal kleuren dat we hebben aangeleverd overeenkomt met het aantal boxplots.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:
Oplossing: discrete waarde op continue schaal
Oplossing: argument is niet numeriek en ook niet logisch: retourneert na
Oplossing: Vervanging heeft een lengte van nul