New title here • Russwurm

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)