So ordnen sie balken in einem gestapelten balkendiagramm in ggplot2 neu an


Sie können die folgende grundlegende Syntax verwenden, um die Position von Balken in einem gestapelten Balkendiagramm in ggplot2 neu anzuordnen:

 #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 ')

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Balken in einem gestapelten Balkendiagramm in ggplot2 neu anordnen

Angenommen, wir haben den folgenden Datenrahmen in R, der die von verschiedenen Basketballspielern erzielten Punkte zeigt:

 #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

Wenn wir ein gestapeltes Balkendiagramm erstellen, um die von den Spielern jedes Teams erzielten Punkte zu visualisieren, stapelt ggplot2 die Balken automatisch in alphabetischer Reihenfolge:

 library (ggplot2)

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

Beachten Sie, dass jeder gestapelte Balken die Position (von oben nach unten) in alphabetischer Reihenfolge anzeigt.

Um die Balken auf eine bestimmte Art und Weise neu anzuordnen, können wir die Positionsvariable in einen Faktor umwandeln und mit dem Argument „ levels“ die Reihenfolge angeben, in der die Balken im gestapelten Balkendiagramm angezeigt werden sollen (von oben nach unten):

 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 ') 

Die Balken werden nun genau in der Reihenfolge gestapelt (von oben nach unten), die wir im Argument „levels“ angegeben haben.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in ggplot2 ausführen:

So drehen Sie Achsenbeschriftungen in ggplot2
So legen Sie Achsenumbrüche in ggplot2 fest
So legen Sie Achsengrenzen in ggplot2 fest
So ändern Sie Legendenbeschriftungen in ggplot2

Einen Kommentar hinzufügen

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