Come riorganizzare le barre in un grafico a barre in pila in ggplot2


Puoi utilizzare la seguente sintassi di base per riorganizzare la posizione delle barre in un grafico a barre in pila in ggplot2:

 #specify order of bars (from top to bottom)
df$fill_var <- factor(df$fill_var, levels=c(' value1 ', ' value2 ', ' value3 ', ...))

#create stacked bar chart
ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + 
    geom_bar(position=' stack ', stat=' identity ')

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: riorganizzare le barre in un grafico a barre in pila in ggplot2

Supponiamo di avere il seguente frame di dati in R che mostra i punti segnati da diversi giocatori di basket:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
                 points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))

#view data frame
df

  team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20

Se creiamo un grafico a barre in pila per visualizzare i punti segnati dai giocatori di ciascuna squadra, ggplot2 impilerà automaticamente le barre in ordine alfabetico:

 library (ggplot2)

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

Tieni presente che ciascuna barra in pila visualizza la posizione (dall’alto al basso) in ordine alfabetico.

Per riorganizzare le barre in un modo specifico, possiamo convertire la variabile posizione in un fattore e utilizzare l’argomento livelli per specificare l’ordine in cui le barre dovrebbero essere (dall’alto verso il basso) nel grafico a barre in pila:

 library (ggplot2)

#convert 'position' to factor and specify level order
df$position <- factor(df$position, levels=c(' F ', ' G ', ' C '))

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

Le barre sono ora impilate (dall’alto verso il basso) nell’ordine esatto specificato nell’argomento livelli .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in ggplot2:

Come ruotare le etichette degli assi in ggplot2
Come impostare le interruzioni degli assi in ggplot2
Come impostare i limiti degli assi in ggplot2
Come modificare le etichette della legenda in ggplot2

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *