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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert