Dieses mal werden wir uns mit Violinenplots beschäftigen. Violinenplots sind vergleichbar mit Boxplots, allerdings zeigen sie die Verteilung der Daten nicht durch fünf Standardstatistiken an, sondern direkt als Dichtefunktion.
Zunächst müssen wir die nötigen Bibliotheken laden, also ggplot, und für die Beispiele den Beispieldatensatz palmerpenguins:
library(ggplot2) library(palmerpenguins)
Einfacher Violinenplot der Flossenlänge
Beginnen wir mit einem einfachen Histogramm-Plot der Flossenlänge der Pinguine:
ggplot(penguins, aes(x = species, y= flipper_length_mm)) + geom_violin()

Dieser Plot zeigt die Verteilung der Flossenlängen aller Pinguine im Datensatz. Die aes()
-Funktion legt die Variablen für die x- und y-Achse fest, und geom_violin()
fügt die Violinplots hinzu.
Quantile – von Boxplots lernen
Es ist auch möglich Quantile anzuzeigen, also zum Beispiel das 25%-Quantil, das 75%-Quantil und den Median. Also die gleichen Informationen die die Box eines Boxplots bereitstellt. Hiermit lässt sich der Informationsgehalt eines Boxplots dem dem eines Violinenplots kombinieren.
ggplot(penguins, aes(x = species, y = flipper_length_mm)) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))

Achsenbeschriftungen
Um das Diagramm verständlicher zu machen, sind Achsenberschriftungen unverzichtbar. Das geht einfach mit der labs()-
Funktion von ggplot:
ggplot(penguins, aes(x = species, y = flipper_length_mm)) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75)) + labs( y = "Schnabellänge [mm]", x = "Pinguinart" )

Farben
Natürlich lassen sich die Farben eines Violinenplots anpassen. Dafzu brauchen wir in der aes()
-Funktion den fill
-Parameter, da hier die Füllfarbe geändert wird. Mit color
würde man nur Umrandung der Violinen einfärben.
ggplot(penguins) + aes(x = species, y = flipper_length_mm, fill = species) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75)) + labs( y = "Schnabellänge [mm]", x = "Pinguinart" )

Hinzufügen der Datenpunkte
Ess ist auch möglich, die einzelnen Datenpunkte die der Verteilung im Violinenplot zugrunde liegen anzuzeigen. Das geht über geom_jitter()
ggplot(penguins) + aes(x = species, y = flipper_length_mm, fill = species) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75)) + geom_jitter(width = 0.2, alpha = 0.5) + labs( y = "Schnabellänge [mm]", x = "Pinguinart" )

Der width
-Parameter kontrolliert die horizontale Streuung der Punkte, also auf welche Breit sollen die Punkte verteilt werden. Der alpha
-Parameter ist dafür da, die Punkte leicht transparent anzuzeigen, sodass man überlapp besser erkennen kann.
Trimming
Wie im vorigen Plot sichtbar ist, gibt es manchmal Punkte die außerhalb des Violinenplots liegen. Das liegt daran, dass standardmäßig die Violinen oben und unten abgeschnitten werden, aka getrimmt werden.
Das lässt sich einfach durch den trim
-Parameter in der geom_violin()
-Funktion abschalten.
ggplot(penguins) + aes(x = species, y = flipper_length_mm, fill = species) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75), trim = FALSE) + labs( y = "Schnabellänge [mm]", x = "Pinguinart" )

Durch das Setzen von trim = FALSE
deaktivieren wir das Trimmen der Violinplots, sodass auch die Ränder der Verteilung angezeigt werden.