Raincloud Plot in R
Die Darstellung eines Raincloud Plots in R bietet sehr viele Möglichkeiten und dieses Codefragment stellt einen Überblick über die Formattierungsoptionen dar. Details zu den einzelnen Optionen sind in den Dokumentationen der einzelnen Bibliotheken zu finden.
Ich habe hier nur ein Codefragment, aber ich hoffe es hilft bei der Suche nach den richtigen Libraries und besonders bei den einzelnen Parametern - habe einige Zeit gesucht, um das Ergebnis so zu haben, wie ich mir das vorgestellt habe.
WICHTIG: Der folgende Code benötigt als Basis die Daten in einem Dataframe "ds" und wertet die Variable AL04 aus.
library(dplyr)
library(tidyverse)
library(tidyquant)
library(ggplot2)
library(ggdist)
library(ggthemes)
library(ggbreak)
library(ggpattern)
library(sjPlot)
dsFilter <- ds %>%
filter(AL04 %in% c("Männlich", "Weiblich") & TIME_SUM > 480 & TIME_SUM < 1800)
plot <- ggplot(dsFilter, aes(x=AL04, y=PR_Mean, fill=AL04 )) +
scale_fill_manual(values = c("Männlich" = "#8080e0", "Weiblich" = "#e08080"), labels = c("Männlich", "Weiblich")) +
#scale_pattern_manual(values=c("Männlich" = 'stripe', "Weiblich" = 'wave')) +
labs(y= "Prokrastination Mean", x = "Geschlecht", title="Raincloud Plot", fill="Geschlecht") +
scale_x_discrete(labels = c("1" = "Männlich", "2" = "Weiblich")) +
#scale_x_continuous(labels = c("1" = "Männlich", "2" = "Weiblich")) +
# add half-violin from {ggdist} package
stat_halfeye(
# adjust bandwidth
adjust = 0.8,
scale = 0.4,
# move to the right
justification = -0.2,
# remove the slub interval
.width = .1,
point_colour = NA
) +
geom_boxplot(
width = 0.1,
outlier.shape = NA,
# removing outliers
# outlier.color = NA,
alpha = 0.5
) +
geom_jitter(width = 0.02, color="#00000080", alpha = 0.3) +
stat_dots(
# ploting on left side
side = "left",
slab_color = "#8080e000",
# adjusting position
justification = 1.1,
# adjust grouping (binning) of observations
binwidth = 0.04
) +
theme(legend.key.size = unit(.5, "cm")) + # Erhöht die Größe des Legenden-Keys
theme_classic() +
#coord_cartesian(xlim = c(0.9, 2.1)) +
coord_flip()
plot
# save_plot("D:/download/your_plot.svg", fig = p, width=10, height=12)