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.
- Der erste zählt die Häufigkeit des Vorkommens zwischen Gruppen.
- 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:
Note: Stellen Sie sicher, dass Sie die Variablen in einen Faktor umwandeln, da R die Variablen sonst als numerisch behandelt. Siehe das Beispiel unten.
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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") |