Come modificare l'ordine delle sfaccettature in ggplot2 (con esempio)
Puoi utilizzare la seguente sintassi di base per specificare l’ordine delle sfaccettature in ggplot2:
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: cambia l’ordine delle sfaccettature in ggplot2
Supponiamo di avere il seguente frame di dati in R:
#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
Il codice seguente mostra come utilizzare facet_grid() per creare una griglia che visualizzi un grafico a dispersione degli assist rispetto ai punti per ciascuna squadra:
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
Per impostazione predefinita, ggplot2 posiziona i grafici a dispersione in ordine in base ai valori che appaiono per primi nella variabile team del frame di dati.
Tuttavia, possiamo convertire squadra in una variabile fattore e utilizzare l’argomento livelli per specificare l’ordine in cui le squadre devono essere posizionate nella trama:
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 ')))
Nota che le nuvole di punti sono ora ordinate secondo l’ordine specificato nell’argomento livelli : C, D, A, B.
Il vantaggio di utilizzare questo approccio è che in realtà non modifichiamo i dati sottostanti.
Invece, modifichiamo solo i livelli nella funzione facet_grid() .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in ggplot2:
Come cambiare la dimensione del carattere in ggplot2
Come rimuovere una legenda in ggplot2
Come ruotare le etichette degli assi in ggplot2