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ą.
Jak opisać w pracy
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.
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
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 1Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3; rysunek wykonano w ggplot2 4.0.2 i ggdist 3.3.3.
- 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/
- ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
- 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
Wykresy w pracy dyplomowej
Jaki wykres do jakich danych, błędy źle → dobrze, podpis rysunku i gotowe zdania opisu wykresu w rozdziale wyników.
Czytaj →PoradnikStatystyki opisowe w pracy
Co policzyć dla jakiej zmiennej, jak zbudować tabelę APA, ile miejsc po przecinku podać, jak pokazać braki danych i które wykresy wybrać – na jednym przykładzie z R.
Czytaj →Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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}}