A Rainclouds Geom for 'ggplot2'.
ggrain
- Raincloud Plots
ggrain
is an R-package that allows you to create Raincloud plots - following the 'Grammar of Graphics' (i.e., ggplot2) - that are:
- Highly customizable
- Connect longitudinal observations
- Handles Likert data
- Allows mapping of a covariate.
Example
ggplot(iris, aes(x = 1, y = Sepal.Length)) +
geom_rain()
Installation
There are two ways to install this package.
- Download the CRAN version
install.packages("ggrain")
library(ggrain)
- Download through GitHub
if (!require(remotes)) {
install.packages("remotes")
}
remotes::install_github('njudd/ggrain')
library(ggrain)
Simple examples
Raincloud per group
ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_rain(rain.side = 'l')
Different groups overlapped
ggplot(iris, aes(x = 1, y = Sepal.Length, fill = Species)) + geom_rain(alpha = .5)
Vignette
For a complete overview of ggrain
such as a 2-by-2 raincloud plot or multiple repeated measures, please see our Vignette.
ggrain
specific features
geom_rain
is a combination of 4 different ggplot2 geom's (i.e., point, line, boxplot & violin).
id.long.var
: a grouping variable to connect the lines bycov
: a covariate to remap the color of the pointsLikert
:True
orFalse
response which adds y jitteringrain.side
: Which side to display the rainclouds: 'l' for left, 'r' for right and 'f' for flanking
Specific geom arguments can be passed with a list to any of the 4 geom's with the argument {point/line/boxplot/violin}.args
. For a list of arguments that can be passed see the help files of the respective geom's (e.g., ?gghalves::geom_half_violin
).
Position-related arguments (e.g., jittering, nudging & width) can be passed with {point/line/boxplot/violin}.args.pos
, see the help file of ?geom_rain
for defaults
Contributions / Issues
We warmly welcome all contributions. You can open an issue or make a pull request if you would like to add something new!
Citation
ggrain
was developed by Nicholas Judd, Jordy van Langen, Micah Allen, and Rogier Kievit.
- Judd, N., van Langen, J., Allen, M., & Kievit, R.A. ggrain: A Rainclouds Geom for 'ggplot2'. R package version 0.0.3. CRAN 2023, https://CRAN.R-project.org/package=ggrain
Funding
In 2021, NWO (Dutch research council) announced their inaugural NWO Open Science Fund. The Open Science Fund aims to support researchers to develop, test and implement innovative ways of making research open, accessible, transparent and reusable, covering the whole range of Open Science. The Raincloud plots team was awarded this fantastic initiative and is specifically working on:
- Creating the
ggrain
R-package - Creating an interactive R Shiny application
raincloudplots
- Integrating Raincloudplots in JASP Statistics
- Organzing globally accessible, online workshops to help people create raincloudplots and improve their data visualizations in general.
You can read more about our awarded project here: https://www.nwo.nl/en/projects/203001011 or you can watch the online webinar hosted by NWO about our project:
Raincloud Plots
Paper
- Allen, M., Poggiali, D., Whitaker, K., Marshall, T. R., van Langen, J., & Kievit, R. A. Raincloud plots: a multi-platform tool for robust data visualization [version 2; peer review: 2 approved] Wellcome Open Research 2021, 4:63. https://doi.org/10.12688/wellcomeopenres.15191.2
There are now 4 ways in which you can use our Raincloud Plots tools:
- through a series of specific easy to modify scripts https://github.com/RainCloudPlots/RainCloudPlots
- through our initial
raincloudplots
package - through the newest R-package
ggrain
- through our R Shiny application:
raincloudplots
.