Słownik metodologiczny · Statystyka opisowa

Wykres raincloud – rozkład, pudełko i surowe dane na jednym rysunku

Raincloud pokazuje naraz kształt rozkładu, medianę z kwartylami i wynik każdej osoby. Wyjaśniamy, z czego się składa, kiedy go wybrać i jak go zrobić w R.

Strona główna / Słownik / Wykres raincloud
W skrócie: Wykres raincloud łączy połówkę krzywej gęstości, wąski wykres pudełkowy i surowe wyniki jako punkty. Dzięki temu widać kształt rozkładu, medianę i liczbę obserwacji naraz. To dobra alternatywa dla słupków ze średnimi, także przy niewielkich grupach.

Co to jest wykres raincloud?

Wykres raincloud (ang. raincloud plot, dosłownie „chmura z deszczem”) łączy na jednym rysunku trzy warstwy: połówkę krzywej gęstości („chmurę”), wąski wykres pudełkowy i surowe wyniki pojedynczych osób jako punkty („deszcz”). Allen i in. (2021) zaproponowali go jako odpowiedź na krytykę słupków ze średnimi i wąsami błędu, które mogą zniekształcać wielkość efektu i ukrywać wzorce w danych.

Kiedy go użyć

Raincloud sprawdza się przy porównaniu kilku grup lub warunków, gdy chcesz, żeby czytelnik widział jednocześnie kształt rozkładu, medianę i liczbę obserwacji. W odróżnieniu od wykresu skrzypcowego nie kryje surowych danych, więc lepiej znosi małe próby: od razu widać, czy krzywą gęstości wyznaczono z 15, czy z 300 wyników. Weissgerber i in. (2015) pokazali, że w czasopismach dane ciągłe najczęściej przedstawia się na wykresach słupkowych, choć bardzo różne rozkłady mogą na nich wyglądać identycznie.

Przykład

W zadaniu typu Stroopa porównano czas reakcji w trzech warunkach po 40 osób (dane symulowane). Średnie wyniosły 521.6 ms (neutralny), 501.4 ms (zgodny) i 659.3 ms (niezgodny), a mediany – odpowiednio 502.5, 483.0 i 617.5 ms. Średnie są wyższe od median, bo rozkłady czasów reakcji są prawoskośne, co wykres pokazuje wprost. W warunku niezgodnym rozrzut jest największy (SD = 174.3 ms) i widać pojedynczy wynik powyżej 1100 ms, który reguła 1.5 × IQR oznacza jako obserwację odstającą.

Wykres raincloud czasu reakcji w trzech warunkach po 40 osób: prawoskośne rozkłady, mediany 502.5, 483.0 i 617.5 ms, największy rozrzut i jeden bardzo długi czas w warunku niezgodnym
Rysunek 1. Nad osią każdego warunku – gęstość rozkładu, na osi – pudełko z medianą i kwartylami, pod osią – czasy reakcji pojedynczych osób (n = 40 w warunku). Obliczenia: R (dane symulowane).

Jak opisać w pracy

Rozkłady czasu reakcji w trzech warunkach przedstawiono na wykresie raincloud (Rysunek 1), który łączy gęstość rozkładu, wykres pudełkowy i wyniki pojedynczych osób (n = 40 w każdym warunku). Rozkłady były prawoskośne; najdłuższe czasy i największy rozrzut wystąpiły w warunku niezgodnym (Me = 617.5 ms, SD = 174.3 ms).

Na co uważać

  • Punkty nie mogą się zlewać. Przy setkach obserwacji zmniejsz punkty, dodaj przezroczystość albo lekkie rozsunięcie (jitter) tylko w poprzek osi grup.
  • Chmura to wciąż oszacowanie gęstości. Jej kształt zależy od szerokości pasma, tak jak w histogramie od szerokości przedziałów.
  • Rysunek nie zastępuje testu. Pokazuje dane, ale różnice między warunkami opisz statystyką i wielkością efektu.

Inne rysunki do pracy i ich podpisy omawia wpis Wykresy w pracy dyplomowej.

Przykład reprodukowalny

Wykres raincloud w R

Kod liczy statystyki opisowe w warunkach i buduje wykres z trzech warstw: stat_halfeye() z pakietu ggdist (chmura), geom_boxplot() (pudełko) i geom_point() z rozsunięciem (deszcz). Rysunek wyświetlisz, wpisując p.

Statystyki opisowe i trzy warstwy wykresu

Dane wejściowe: czas reakcji w ms w trzech warunkach po 40 osób (dane symulowane, set.seed(260)).

Co odczytać: średnią, medianę, SD i liczbę obserwacji odstających (reguła 1.5 × IQR) w każdym warunku.

R
set.seed(260)
n <- 40                                                      # osób w każdym warunku
d <- data.frame(warunek = factor(rep(c("neutralny", "zgodny", "niezgodny"), each = n),
                                 levels = c("neutralny", "zgodny", "niezgodny")),
                rt = round(c(rlnorm(n, log(520), 0.18), rlnorm(n, log(495), 0.18), rlnorm(n, log(585), 0.25))))
odst <- function(x) sum(x > quantile(x, .75) + 1.5 * IQR(x) | x < quantile(x, .25) - 1.5 * IQR(x))
do.call(rbind, lapply(split(d$rt, d$warunek), function(x)
  round(c(n = length(x), M = mean(x), Me = median(x), SD = sd(x), odstajace = odst(x)), 1)))

library(ggplot2); library(ggdist)
p <- ggplot(d, aes(warunek, rt, fill = warunek)) +
  stat_halfeye(adjust = 0.8, width = 0.5, justification = -0.25, .width = 0, point_colour = NA) +  # chmura
  geom_boxplot(width = 0.12, outlier.shape = NA, fill = "white") +                                # pudełko
  geom_point(aes(x = as.numeric(warunek) - 0.22), alpha = 0.5,                                   # deszcz
             position = position_jitter(width = 0.05, height = 0)) +
  coord_flip()
Wynik w R
           n     M    Me    SD odstajace
neutralny 40 521.6 502.5 106.8         1
zgodny    40 501.4 483.0 104.8         0
niezgodny 40 659.3 617.5 174.3         1

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3; rysunek wykonano w ggplot2 4.0.2 i ggdist 3.3.3.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
  3. ggdist (wersja 3.3.3): Kay, M. (2025). ggdist: Visualizations of distributions and uncertainty [R package]. https://mjskay.github.io/ggdist/

Najczęstsze pytania

Z czego składa się wykres raincloud?

Z trzech warstw: połówki krzywej gęstości (chmura), wąskiego wykresu pudełkowego z medianą i kwartylami oraz punktów z wynikami pojedynczych osób (deszcz).

Jak zrobić wykres raincloud w R?

Najprościej w ggplot2 z pakietem ggdist: stat_halfeye() rysuje chmurę, geom_boxplot() pudełko, a geom_point() z lekkim rozsunięciem – punkty.

Czy wykres raincloud nadaje się do pomiarów powtarzanych?

Tak, ale dodaj linie łączące wyniki tej samej osoby między pomiarami. Bez nich rysunek wygląda jak porównanie niezależnych grup.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Allen, M., Poggiali, D., Whitaker, K., Marshall, T. R., van Langen, J., & Kievit, R. A. (2021). Raincloud plots: A multi-platform tool for robust data visualization. Wellcome Open Research, 4, Article 63. https://doi.org/10.12688/wellcomeopenres.15191.2 ● Otwarty dostęp
  2. Weissgerber, T. L., Milic, N. M., Winham, S. J., & Garovic, V. D. (2015). Beyond bar and line graphs: Time for a new data presentation paradigm. PLOS Biology, 13(4), Article e1002128. https://doi.org/10.1371/journal.pbio.1002128 ● Otwarty dostęp

Cytowania BibTeX

@article{allen2021raincloud, author={Allen, Micah and Poggiali, Davide and Whitaker, Kirstie and Marshall, Tom Rhys and van Langen, Jordy and Kievit, Rogier A.}, title={{Raincloud plots: A multi-platform tool for robust data visualization}}, journal={Wellcome Open Research}, year={2021}, volume={4}, eid={63}, doi={10.12688/wellcomeopenres.15191.2}}
@article{weissgerber2015beyond, author={Weissgerber, Tracey L. and Milic, Natasa M. and Winham, Stacey J. and Garovic, Vesna D.}, title={{Beyond bar and line graphs: Time for a new data presentation paradigm}}, journal={PLOS Biology}, year={2015}, volume={13}, number={4}, eid={e1002128}, doi={10.1371/journal.pbio.1002128}}
R