La differenza tra facet_wrap() e facet_grid() in r
Le funzioni facet_grid() e facet_wrap() nel pacchetto ggplot2 possono essere entrambe utilizzate per produrre una griglia di grafici.
Ecco la differenza principale tra le due funzioni:
- La funzione facet_grid() produrrà una griglia di grafici per ogni combinazione di variabili specificata, anche se alcuni grafici sono vuoti.
- La funzione facet_wrap() produrrà solo grafici per combinazioni di variabili che hanno valori, il che significa che non produrrà grafici vuoti .
I due esempi seguenti illustrano la differenza tra queste due funzioni, utilizzando il seguente frame di dati:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'G', 'G'),
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 position points assists
1 GA 8 10
2 AG 14 5
3 FY 20 5
4 AF 22 3
5 BG 25 8
6 BG 29 6
7 BG 30 9
8 BG 31 12
Esempio 1: utilizzo della funzione facet_grid()
Il codice seguente mostra come utilizzare facet_grid() per creare una griglia che visualizza un grafico a dispersione di assist rispetto a punti per ciascuna combinazione di squadra e posizione:
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(position~team)
Si noti che viene prodotto un grafico a dispersione per ogni combinazione di squadra e posizione , anche se nel frame di dati originale non esistono valori per un valore di squadra B e un valore di posizione F :
Ecco come funziona facet_grid() : produrrà un grafico per ogni combinazione di variabili specificate, anche se alcuni grafici sono vuoti.
Esempio 2: utilizzo della funzione facet_wrap()
Il codice seguente mostra come utilizzare facet_wrap() per creare una griglia che visualizza un grafico a dispersione di assist rispetto a punti per ogni combinazione esistente di squadra e posizione:
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_wrap(position~team)
Tieni presente che un grafico a dispersione viene prodotto solo per le combinazioni di squadra e posizione esistenti nel frame di dati originale.
Ciò significa che non viene creato alcun grafico per la combinazione della squadra B e della posizione F perché non esiste alcun valore nel frame di dati originale per quella particolare combinazione.
Ecco come funziona facet_wrap() : non produrrà mai un percorso vuoto.
Nota : fare riferimento alla documentazione di ggplot2 per una guida completa alle funzioni facet_grid() e facet_wrap() .
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