Balkendiagramm und Histogramm in R (mit Beispiel)

Ein Balkendiagramm ist eine großartige Möglichkeit, kategoriale Variablen auf der x-Achse anzuzeigen. Diese Art von Diagramm bezeichnet zwei Aspekte auf der y-Achse.

  1. Der erste zählt die Häufigkeit des Vorkommens zwischen Gruppen.
  2. Die zweite zeigt eine zusammenfassende Statistik (Min., Max., Durchschnitt usw.) einer Variablen auf der Y-Achse.

Sie verwenden den mtcars-Datensatz mit den folgenden Variablen:

  • Zyl: Nummer des Zylinders im Auto. Numerische Variable
  • am: Getriebetyp. 0 für Automatik und 1 für Handschaltung. Numerische Variable
  • mpg: Meilen pro Gallone. Numerische Variable

So erstellen Sie ein Balkendiagramm

So erstellen Sie ein Diagramm in Rkönnen Sie die Bibliothek ggplot verwenden, die zur Veröffentlichung bereite Diagramme erstellt. Die grundlegende Syntax dieser Bibliothek lautet:

ggplot(data, mapping = aes()) +
geometric object 

arguments: 
data: dataset used to plot the graph 
mapping: Control the x and y-axis 
geometric object: The type of plot you want to show. The most common objects are:

- Point: `geom_point()`
- Bar: `geom_bar()`
- Line: `geom_line()`
- Histogram: `geom_histogram()` 

In diesem Tutorial interessieren Sie sich für das geometrische Objekt geom_bar(), das das Balkendiagramm erstellt.

Balkendiagramm: Anzahl

Ihr erstes Diagramm zeigt die Häufigkeit des Zylinders mit geom_bar(). Der folgende Code ist die grundlegendste Syntax.

library(ggplot2)
# Most basic bar chart
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar()

Code Erklärung

  • Sie übergeben den Datensatz mtcars an ggplot.
  • Innerhalb des aes()-Arguments fügen Sie die x-Achse als Faktorvariable (cyl) hinzu.
  • Das +-Zeichen bedeutet, dass R den Code weiterlesen soll. Es unterbricht den Code und macht ihn dadurch lesbarer.
  • Verwenden Sie geom_bar() für das geometrische Objekt.

Ausgang:

Balkendiagramm: Anzahl

Note: Stellen Sie sicher, dass Sie die Variablen in einen Faktor umwandeln, da R die Variablen sonst als numerisch behandelt. Siehe das Beispiel unten.

Balkendiagramm: Anzahl

Passen Sie das Diagramm an

Zur Anpassung des Diagramms können vier Argumente übergeben werden:

- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`
- `alpha`: Control density of the color
- `fill`: Change the color of the bar
- `size`: Control the size the bar	

Ändern Sie die Farbe der Balken

Sie können die Farbe der Balken ändern. Beachten Sie, dass die Farben der Balken alle ähnlich sind.

# Change the color of the bars
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar(fill = "coral") +
    theme_classic()

Code Erklärung

  • Die Farben der Balken werden durch die aes()-Zuordnung innerhalb des geometrischen Objekts gesteuert (also nicht im ggplot()). Sie können die Farbe mit den Füllargumenten ändern. Hier wählen Sie die Korallenfarbe.

Ausgang:

Ändern Sie die Farbe der Balken

Sie können diesen Code verwenden:

grDevices::colors()

um alle in R verfügbaren Farben zu sehen. Es gibt rund 650 Farben.

Ändern Sie die Intensität

Sie können die Intensität der Balkenfarbe erhöhen oder verringern

# Change intensity
ggplot(mtcars,
        aes(factor(cyl))) +
    geom_bar(fill = "coral",
        alpha = 0.5) +
    theme_classic()

Code Erklärung

  • Um die Intensität des Balkens zu erhöhen/verringern, können Sie den Wert des Alphas ändern. Ein großer Alpha erhöht die Intensität und ein niedriger Alpha verringert die Intensität. Alpha reicht von 0 bis 1. Bei 1 stimmt die Farbe mit der Palette überein. Bei 0 ist die Farbe weiß. Sie wählen Alpha = 0.1.

Ausgang:

Ändern Sie die Intensität

Farbe nach Gruppen

Sie können die Farben der Balken ändern, d. h. eine andere Farbe für jede Gruppe. Wenn die Variable cyl beispielsweise drei Ebenen hat, können Sie das Balkendiagramm mit drei Farben zeichnen.

# Color by group
ggplot(mtcars, aes(factor(cyl),
        fill = factor(cyl))) +
    geom_bar()

Code Erklärung

  • Das Argument fill in aes() ermöglicht das Ändern der Farbe des Balkens. Sie ändern die Farbe, indem Sie die Variable fill = x-axis festlegen. In Ihrem Beispiel ist die x-Achsenvariable cyl; fill = Faktor(cyl)

Ausgang:

Farbe nach Gruppen

Fügen Sie eine Gruppe in den Balken hinzu

Sie können die Y-Achse noch weiter aufteilen, indem Sie eine weitere Faktorebene verwenden. Sie können beispielsweise die Anzahl der automatischen und manuellen Getriebe basierend auf dem Zylindertyp zählen.

Sie gehen wie folgt vor:

  • Schritt 1: Erstellen Sie den Datenrahmen mit dem mtcars-Datensatz
  • Schritt 2: Beschriften Sie die Variable am mit auto für Automatikgetriebe und man für manuelles Getriebe. Konvertieren Sie am und cyl als Faktor, damit Sie factor() in der Funktion ggplot() nicht verwenden müssen.
  • Schritt 3: Zeichnen Sie das Balkendiagramm, um die Anzahl der Übertragungen pro Zylinder zu zählen
library(dplyr)
# Step 1
data <- mtcars % > % 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Sie haben den Datensatz bereit und können das Diagramm zeichnen;

# Schritt 3

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar() +
    theme_classic()

Code Erklärung

  • Das ggpplot() enthält die Datensatzdaten und das aes().
  • In aes() fügen Sie die Variable x-Achse ein und welche Variable zum Füllen des Balkens erforderlich ist (z. B. bin).
  • geom_bar(): Erstellt das Balkendiagramm

Ausgang:

Fügen Sie eine Gruppe in den Bars hinzu

Durch die Zuordnung wird die Leiste mit zwei Farben gefüllt, eine für jede Ebene. Es ist mühelos, die Gruppe zu ändern, indem Sie andere Faktorvariablen im Datensatz auswählen.

Balkendiagramm in Prozent

Sie können den Balken auch in Prozent anstelle der Rohzahl anzeigen.

# Balkendiagramm in Prozent

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = "fill") +
    theme_classic()

Code Erklärung

  • Verwenden Sie position = „fill“ im Argument geom_bar(), um eine Grafik mit Prozentangaben auf der y-Achse zu erstellen.

Ausgang:

Balkendiagramm in Prozent

Nebeneinander angeordnete Balken

Es ist einfach, das Balkendiagramm mit der Gruppenvariablen nebeneinander zu zeichnen.

# Bar chart side by side
ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = position_dodge()) +
    theme_classic()

Code Erklärung

  • position=position_dodge(): Gibt explizit an, wie die Balken angeordnet werden sollen

Ausgang:

Side-by-Side-Bars

Histogramm

Im zweiten Teil des Balkendiagramm-Tutorials können Sie die Gruppe von Variablen mit Werten auf der y-Achse darstellen.

Ihr Ziel besteht darin, ein Diagramm mit der durchschnittlichen Meile pro Gallone für jeden Zylindertyp zu erstellen. Um ein informatives Diagramm zu zeichnen, gehen Sie folgendermaßen vor:

  • Schritt 1: Erstellen Sie eine neue Variable mit der durchschnittlichen Meile pro Gallone pro Zylinder
  • Schritt 2: Erstellen Sie ein einfaches Histogramm
  • Schritt 3: Ändern Sie die Ausrichtung
  • Schritt 4: Ändern Sie die Farbe
  • Schritt 5: Ändern Sie die Größe
  • Schritt 6: Fügen Sie dem Diagramm Beschriftungen hinzu

Schritt 1) Erstellen Sie eine neue Variable

Sie erstellen einen Datenrahmen mit dem Namen data_histogram, der einfach die durchschnittlichen Meilen pro Gallone basierend auf der Anzahl der Zylinder im Auto zurückgibt. Sie nennen diese neue Variable „mean_mpg“ und runden den Mittelwert mit zwei Dezimalstellen.

# Schritt 1

data_histogram <- mtcars % > %
mutate(cyl = factor(cyl)) % > %
group_by(cyl) % > %
summarize(mean_mpg = round(mean(mpg), 2))

Schritt 2) Erstellen Sie ein einfaches Histogramm

Sie können das Histogramm zeichnen. Es ist nicht kommunikationsbereit, um es dem Kunden zu liefern, aber es gibt uns eine Vorstellung vom Trend.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity")

Code Erklärung

  • Das aes() hat nun zwei Variablen. Die Variable cyl bezieht sich auf die x-Achse und „mean_mpg“ ist die y-Achse.
  • Sie müssen das Argument stat=“identity“ übergeben, um die Variable auf der y-Achse als numerischen Wert zu referenzieren. geom_bar verwendet stat=“bin“ als Standardwert.

Ausgang:

Histogramm

Schritt 3) Ändern Sie die Ausrichtung

Sie ändern die Ausrichtung des Diagramms von vertikal auf horizontal.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity") +
    coord_flip()

Code Erklärung

  • Sie können die Ausrichtung des Diagramms mit coord_flip() steuern.

Ausgang:

Histogramm

Schritt 4) Farbe ändern

Sie können die Farben der Balken entsprechend der Faktorstufe der x-Achsenvariablen unterscheiden.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    coord_flip() +
    theme_classic()

Code Erklärung

  • Mit der Zuordnung „fill= cyl“ können Sie den Graphen nach Gruppen darstellen. R kümmert sich automatisch um die Farben basierend auf den Ebenen der Zyl-Variablen

Ausgang:

Histogramm

Schritt 5) Ändern Sie die Größe

Um das Diagramm schöner aussehen zu lassen, verringern Sie die Breite des Balkens.

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity",
        width = 0.5) +
    coord_flip() +
    theme_classic()

Code Erklärung

  • Das width-Argument in geom_bar() steuert die Größe des Balkens. Ein größerer Wert erhöht die Breite.
  • Beachten Sie, dass Sie das Diagramm im Variablendiagramm speichern. Sie tun dies, weil der nächste Schritt den Code des Variablendiagramms nicht ändert. Es verbessert die Lesbarkeit des Codes.

Ausgang:

Histogramm

Schritt 6) Fügen Sie dem Diagramm Beschriftungen hinzu

Der letzte Schritt besteht darin, den Wert der Variablen „mean_mpg“ in das Label einzufügen.

graph +
    geom_text(aes(label = mean_mpg),
        hjust = 1.5,
        color = "white",
        size = 3) +
    theme_classic()

Code Erklärung

  • Die Funktion geom_text() ist nützlich, um die Ästhetik des Textes zu steuern.
    • label=: Fügen Sie eine Beschriftung innerhalb der Balken hinzu
    • mean_mpg: Verwenden Sie die Variable „mean_mpg“ für die Beschriftung
  • h steuert nur die Position der Beschriftung. Bei Werten nahe 1 wird die Beschriftung oben in der Leiste angezeigt, bei höheren Werten wird die Beschriftung nach unten verschoben. Wenn die Ausrichtung des Diagramms vertikal ist, ändern Sie hjust in vjust.
  • color=“white“: Ändern Sie die Farbe des Textes. Hier verwenden Sie die weiße Farbe.
  • size=3: Legen Sie die Größe des Textes fest.

Ausgang:

Histogramm

Zusammenfassung

Ein Balkendiagramm ist nützlich, wenn die x-Achse eine kategorische Variable ist. Die y-Achse kann entweder eine Zählung oder eine zusammenfassende Statistik sein. Die folgende Tabelle fasst zusammen, wie man Balkendiagramme mit ggplot2 steuert:

Ziel Code
Zu Zählen
ggplot(df, eas(x= factor(x1)) + geom_bar()
Zählen Sie mit unterschiedlicher Füllfarbe
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()
Zählen Sie mit Gruppen, gestapelt
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Zählen Sie mit Gruppen nebeneinander
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()
Zählung mit Gruppen, gestapelt in %
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())
Werte
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")