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 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:

Balkendiagramm: Anzahl

Hinweis: 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 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:

ร„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 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:

ร„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 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:

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 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:

Fรผgen Sie eine Gruppe in den Bars hinzu

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:

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 Erlรคuterung

  • 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 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:

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 Erlรคuterung

  • 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 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:

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 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:

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 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:

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

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: