Raincloud Plot
Three charts in one — a half-density “cloud,” a box plot for summary statistics, and jittered data points as “rain.” The most information-dense distribution chart available.
// 01 — The chart
What it looks like
A raincloud plot comparing reaction times: the cloud (density curve) shows shape, the box shows statistics, and the rain (dots) shows every trial.
// 02 — Definition
What is a raincloud plot?
A raincloud plot is a three-layer distribution chart that stacks three complementary views vertically: a half-density curve (the “cloud”), a box plot (summary statistics), and jittered raw data points (the “rain”). Together, they provide the most complete view of a distribution in a single chart.
Each layer answers a different question. The density curve shows the overall shape (skewness, multimodality). The box plot shows the five-number summary (min, Q1, median, Q3, max). The raw dots show individual observations, outliers, and exact data density.
The name comes from the visual metaphor: the smooth density curve above looks like a cloud, and the jittered dots below look like rain falling from it. This design was formalized in a 2019 paper by Micah Allen et al., who argued that showing all three views simultaneously prevents the misleading oversimplification that any single chart type creates.
Origin: The raincloud plot was formalized in “Raincloud plots: a multi-platform tool for robust data visualization” by Micah Allen, Davide Poggiali, Kirstie Whitaker et al. (2019). The concept builds on earlier “half-violin + dot plot” designs used informally in scientific communities.
// 03 — Anatomy
Parts of a raincloud plot
// 04 — Usage
When to use it — and when not to
- You need the fullest possible picture of a distribution in one chart
- Comparing 2–5 groups with 30–300 observations each
- Publishing in academic or scientific contexts that value transparency
- You want to show shape, summary stats, AND individual points simultaneously
- Box plots or violin plots alone would hide important features
- You suspect the data is multimodal and want to confirm with raw points
- The audience is non-technical — three layers can overwhelm unfamiliar readers
- Space is tight — rainclouds need vertical room for all three layers
- You have many groups (>5) — the chart gets too tall and complex
- A simple box plot or histogram suffices for the communication goal
- You have very large samples (>500/group) — dots become noise
- Quick dashboard displays where simplicity matters more than completeness
// 05 — Reading guide
How to read a raincloud plot
Read each layer separately, then synthesize.
Start with the cloud
The density curve shows the overall shape — is it symmetric, skewed, bimodal? This gives the big picture.
Read the box plot
The thick line is the median, the box is the IQR. Whiskers show the range excluding outliers.
Examine the rain
Look at the raw dots — are there clusters? Gaps? Outliers that the density curve smoothed over?
Cross-check layers
Does the density peak align with where most dots cluster? Does the box plot median sit at the density peak?
Compare across groups
For each group, compare all three layers: shape shifts, median differences, and individual-level overlap.
// 06 — Data format
What your data should look like
One continuous numeric column and one grouping column — same as for a violin or box plot.
| condition | reaction_ms |
|---|---|
| Control | 342 |
| Control | 318 |
| Treatment | 285 |
| Treatment | 301 |
| Control | 367 |
// R example (ggrain)
library(ggrain) ggplot(df, aes(x = condition, y = reaction_ms, fill = condition)) + geom_rain(alpha = 0.6)
// 07 — Construction
How to build a raincloud plot
Compute a kernel density estimate for each group
Draw a half-density curve (one-sided violin) — the 'cloud'
Position a box plot below the cloud, aligned to the same axis
Add jittered raw data points below the box plot — the 'rain'
Align all three layers to share the same value axis
Use consistent colors per group across all three layers
// 08 — Pitfalls
Common mistakes
Layers not aligned
If the cloud, box plot, and dots don't share the same axis, they can't be cross-referenced — defeating the purpose.
Too many groups
More than 5 groups makes the chart too tall and complex. Use facets or ridgeline plots for many groups.
Wrong layer order
Convention is cloud on top, box in the middle, dots on the bottom. Other orderings confuse experienced readers.
Ignoring the audience
Non-technical audiences may find three layers overwhelming. Use simpler alternatives for general communication.
// 09 — In the wild
Real-world examples
Comparing reaction times across experimental conditions — the three-layer view shows distributional shape, summary, and individual trial results.
Visualizing patient outcomes in treatment vs. placebo groups with full transparency about individual-level data.
Increasingly required in preregistered studies and reproducibility-focused journals that mandate showing raw data alongside summaries.
// 10 — At a glance
Quick reference
| Also known as | Rain cloud chart, split-half violin + box + jitter |
| Category | Distribution |
| Components | Half-density curve + box plot + jittered raw data points |
| Data type | One continuous variable + one categorical grouping variable |
| Ideal group count | 2–5 groups, 30–300 observations each |
| Key principle | Never hide data — show the full distributional picture |
| First published | Allen, Poggiali, Whitaker et al. (2019) |
// 11 — Accessibility
Accessibility notes
Use distinct visual treatments for each layer — fill for density, outlined box, dot markers for rain
Provide a text summary: 'Control group: median 330 ms, IQR 290–370 ms, n = 45, right-skewed'
Offer a data table with raw values and summary statistics as an alternative
Ensure all three layers use sufficient contrast against the background
Label each layer clearly if the audience is unfamiliar with the format
// 12 — Variations
Variations
Horizontal raincloud
Clouds on top, rain falling down — the classic orientation. Flip for vertical when groups go on the X-axis.
Paired raincloud
Two mirrored rainclouds facing each other for direct group comparison — like a split violin.
Raincloud with mean
Add a diamond or crossbar at the group mean in addition to the median line in the box.
Half-eye plot
Removes the raw data dots — just cloud + box for a cleaner but less transparent view.
// 13 — FAQs
Frequently asked questions
What is a raincloud plot?+
A raincloud plot is a three-layer distribution chart that stacks three complementary views vertically: a half-density curve (the "cloud"), a box plot (summary statistics), and jittered raw data points (the "rain"). Together, they provide the most complete view of a distribution in a single chart.
When should you use a raincloud plot?+
Use a raincloud plot when you need the fullest possible picture of a distribution in one chart. It also works well when comparing 2–5 groups with 30–300 observations each, and when publishing in academic or scientific contexts that value transparency.
When should you avoid a raincloud plot?+
Avoid a raincloud plot when the audience is non-technical — three layers can overwhelm unfamiliar readers. It is also a poor fit when space is tight — rainclouds need vertical room for all three layers, or when you have many groups (>5) — the chart gets too tall and complex.
What data do you need to make a raincloud plot?+
One continuous numeric column and one grouping column — same as for a violin or box plot.
Are raincloud plots accessible to screen readers?+
Yes — a raincloud plot can be made accessible to screen readers by pairing it with a clear text summary of the key insight, ensuring color choices meet WCAG contrast guidelines, adding descriptive alt text or aria-label to the SVG, and offering the underlying data as an HTML table fallback for assistive technologies.
Is a raincloud plot suitable for dashboards?+
Yes — a raincloud plot can work well in dashboards as long as the panel is large enough for readers to perceive the encoded values, has a clear title, and includes the legend or axis labels needed to interpret it.