DistributionAdvanced

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

Example — Reaction time by conditionn = 90 trials
ControlTreatment200300400500600Reaction time (ms)

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

ABCD
A — Cloud (half-density): A one-sided density curve showing the overall distribution shape
B — Box plot: Median line, IQR box, and whiskers — quick summary statistics
C — Rain (raw dots): Jittered individual data points — every observation is visible
D — Tail: Where the density drops to near zero — reveals the range and potential outliers

// 04 — Usage

When to use it — and when not to

✓Use a raincloud plot when…
  • 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
×Avoid a raincloud plot when…
  • 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.

1

Start with the cloud

The density curve shows the overall shape — is it symmetric, skewed, bimodal? This gives the big picture.

2

Read the box plot

The thick line is the median, the box is the IQR. Whiskers show the range excluding outliers.

3

Examine the rain

Look at the raw dots — are there clusters? Gaps? Outliers that the density curve smoothed over?

4

Cross-check layers

Does the density peak align with where most dots cluster? Does the box plot median sit at the density peak?

5

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.

conditionreaction_ms
Control342
Control318
Treatment285
Treatment301
Control367

// 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

1.

Compute a kernel density estimate for each group

2.

Draw a half-density curve (one-sided violin) — the 'cloud'

3.

Position a box plot below the cloud, aligned to the same axis

4.

Add jittered raw data points below the box plot — the 'rain'

5.

Align all three layers to share the same value axis

6.

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

Neuroscience

Comparing reaction times across experimental conditions — the three-layer view shows distributional shape, summary, and individual trial results.

Clinical research

Visualizing patient outcomes in treatment vs. placebo groups with full transparency about individual-level data.

Open science

Increasingly required in preregistered studies and reproducibility-focused journals that mandate showing raw data alongside summaries.

// 10 — At a glance

Quick reference

Also known asRain cloud chart, split-half violin + box + jitter
CategoryDistribution
ComponentsHalf-density curve + box plot + jittered raw data points
Data typeOne continuous variable + one categorical grouping variable
Ideal group count2–5 groups, 30–300 observations each
Key principleNever hide data — show the full distributional picture
First publishedAllen, 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.