So sortieren Sie die Balken in einem ggplot2-Balkendiagramm

Von Fabian
Kategorie: R
Tags: ggplot2
Lesezeit: 2 Minuten

Balkendiagramme sind nützlich, um die Häufigkeit verschiedener Datenkategorien anzuzeigen. Standardmäßig ordnen ggplot2-Balkendiagramme die Balken in der folgenden Reihenfolge an:

  • Faktorvariablen sind nach Faktorstufen geordnet.
  • Zeichenvariablen sind in alphabetischer Reihenfolge angeordnet.

Oft sind Sie jedoch daran interessiert, die Riegel in einer anderen bestimmten Reihenfolge zu bestellen. In diesem Tutorial wird die Verwendung des folgenden Dataframes erläutert:

# Dataframe erstellen
df <- data.frame(team = c('B', 'B', 'B', 'A', 'A', 'C'),
                 points = c(12, 28, 19, 22, 32, 45),
                 rebounds = c(5, 7, 7, 12, 11, 4))

# Ansichtsstruktur des Dataframes
str(df)

'data.frame':   6 obs. of  3 variables:
 $ team   : Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3
 $ points : num  12 28 19 22 32 45
 $ rebounds: num  5 7 7 12 11 4

Beispiel 1: Ordnen Sie die Balken basierend auf einer bestimmten Faktorreihenfolge

Wenn wir versuchen, ein Balkendiagramm zu erstellen, um die Häufigkeit nach Team anzuzeigen, werden die Balken automatisch in alphabetischer Reihenfolge angezeigt:

library(ggplot2)

ggplot(df, aes(x=team)) +
  geom_bar()

Orderbarr

Der folgende Code zeigt, wie die Balken nach einer bestimmten Reihenfolge sortiert werden:

# Spezifizieren Sie die Reihenfolge auf Faktorebene
df$team = factor(df$team, levels = c('C', 'A', 'B'))

# Balkendiagramm erneut erstellen 
ggplot(df, aes(x=team)) +
  geom_bar()

Beispiel 2: Ordnen Sie die Balken basierend auf dem numerischen Wert

Wir können die Balken auch anhand numerischer Werte bestellen. Der folgende Code zeigt beispielsweise, wie die Balken mit der Funktion reorder() von der größten zur kleinsten Frequenz geordnet werden:

library(ggplot2)

ggplot(df, aes(x=reorder(team, team, function(x)-length(x)))) +
  geom_bar()

Ordnen Sie Balken im Balkendiagramm von ggplot2 an

Wir können die Balken auch von der kleinsten zur größten Frequenz ordnen, indem wir das Minuszeichen im Aufruf von function() innerhalb der Funktion reorder() entfernen:

library(ggplot2)

ggplot(df, aes(x=reorder(team, team, function(x) length(x)))) +
  geom_bar()

Bestellen Sie die kleinsten bis größten Balken im Balkendiagramm von ggplot2

Zusätzliche Ressourcen

Dokumentation für die Funktion geom_bar().
Dokumentation für die Funktion reorder().
Eine vollständige Liste der R-Tutorials zur Statologie.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: