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 Erlรคuterung
- 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:
Hinweis: 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 Erlรคuterung
- Die Farben der Balken werden durch die aes()-Map gesteuert.ping Innerhalb des geometrischen Objekts (also nicht in ggplot()). Sie kรถnnen die Farbe mit den fill-Argumenten รค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 Erlรคuterung
- 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 Erlรคuterung
- 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 Erlรคuterung
- 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:
Die Karteping Der Balken wird mit zwei Farben gefรผllt, eine fรผr jede Stufe. Die Gruppierung lรคsst sich mรผhelos รคndern, indem man andere Faktorvariablen im Datensatz auswรคhlt.
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 Erlรคuterung
- 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 Erlรคuterung
- 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 Erlรคuterung
- 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 Erlรคuterung
- 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 Erlรคuterung
- Sie kรถnnen den Graphen gruppiert mit der Funktion fill= cyl darstellen.pingR kรผmmert sich automatisch um die Farben basierend auf den Werten der Variable cyl.
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 Erlรคuterung
- 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 Erlรคuterung
- 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") |













