Hoe de volgorde van facetten in ggplot2 te veranderen (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om de volgorde van facetten in ggplot2 op te geven:
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: verander de volgorde van facetten in ggplot2
Stel dat we het volgende dataframe in R hebben:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
De volgende code laat zien hoe je facet_grid() gebruikt om een raster te maken dat een spreidingsdiagram van assists versus punten voor elk team weergeeft:
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
Standaard plaatst ggplot2 de spreidingsdiagrammen in volgorde op basis van de waarden die als eerste verschijnen in de teamvariabele van het dataframe.
We kunnen team echter omzetten in een factorvariabele en het argument niveaus gebruiken om de volgorde te specificeren waarin teams in de plot moeten worden geplaatst:
library (ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B ')))
Merk op dat de puntenwolken nu zijn geordend volgens de volgorde die we hebben opgegeven in het niveau- argument: C, D, A, B.
Het voordeel van deze aanpak is dat we de onderliggende gegevens niet daadwerkelijk veranderen.
In plaats daarvan veranderen we alleen de niveaus in de facet_grid() functie.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:
Hoe de lettergrootte in ggplot2 te veranderen
Hoe een legenda in ggplot2 te verwijderen
Hoe aslabels te roteren in ggplot2