{"id":13711880,"url":"https://github.com/njudd/ggrain","last_synced_at":"2026-02-19T02:33:15.021Z","repository":{"id":64724723,"uuid":"539046465","full_name":"njudd/ggrain","owner":"njudd","description":"{package} Make beautiful Raincloud plots in R!","archived":false,"fork":false,"pushed_at":"2026-01-21T20:29:39.000Z","size":9983,"stargazers_count":88,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-22T08:59:00.211Z","etag":null,"topics":["plotting","r","raincloud"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njudd.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-20T14:57:04.000Z","updated_at":"2026-01-22T08:27:48.000Z","dependencies_parsed_at":"2025-11-27T14:02:27.666Z","dependency_job_id":null,"html_url":"https://github.com/njudd/ggrain","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/njudd/ggrain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njudd%2Fggrain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njudd%2Fggrain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njudd%2Fggrain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njudd%2Fggrain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njudd","download_url":"https://codeload.github.com/njudd/ggrain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njudd%2Fggrain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29601094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T00:59:38.239Z","status":"online","status_checked_at":"2026-02-19T02:00:07.702Z","response_time":117,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plotting","r","raincloud"],"created_at":"2024-08-02T23:01:12.570Z","updated_at":"2026-02-19T02:33:14.983Z","avatar_url":"https://github.com/njudd.png","language":"R","funding_links":[],"categories":["Plot layers"],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/jorvlan/open-visualizations/blob/master/R/package_figures/Rplot03.png\" width=\"200\" height=\"190\" align=\"right\"/\u003e\n\n[![R-CMD-check](https://github.com/njudd/ggrain/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/njudd/ggrain/actions/workflows/R-CMD-check.yaml)\n[![Bugs](https://img.shields.io/github/issues/njudd/ggrain/bug?label=Bugs\u0026logo=github\u0026logoColor=%23FFF\u0026color=brightgreen)](https://github.com/njudd/ggrain/issues?q=is%3Aopen+is%3Aissue)\n![CRAN/METACRAN Version](https://img.shields.io/cran/v/ggrain)\n\u003c!---[[CRAN_Release_Badge](http://cranlogs.r-pkg.org/badges/version-ago/ggrain)](https://CRAN.R-project.org/package=ggrain)--\u003e\n[![CRAN_Download_Badge](https://cranlogs.r-pkg.org/badges/ggrain)](https://CRAN.R-project.org/package=ggrain)\n[![total](https://cranlogs.r-pkg.org/badges/grand-total/ggrain)](https://cranlogs.r-pkg.org/)\n[![](http://cranlogs.r-pkg.org/badges/ggrain)](https://cran.r-project.org/package=ggrain)\n[![Vignette](https://img.shields.io/badge/Vignette-ggrain-orange.svg?colorB=E91E63)](https://www.njudd.com/raincloud-ggrain/)\n[![](https://img.shields.io/badge/Raincloudplots-shinyapps.io-blue?style=flat\u0026labelColor=white\u0026logo=RStudio\u0026logoColor=blue)](https://lcdlab.shinyapps.io/raincloudplots-shiny/)\n\u003c!---[![License: ]()](https://github.com/njudd/ggrain/LICENSE)---\u003e\n\n# `ggrain` - [Raincloud Plots](https://wellcomeopenresearch.org/articles/4-63/v2)\n\n`ggrain` is an R-package that allows you to create Raincloud plots - following the 'Grammar of Graphics' (i.e., ggplot2) - that are: \n\n- Highly customizable\n- Connect longitudinal observations\n- Handles Likert data\n- Allows mapping of a covariate.\n\n### Citation\n\n[`ggrain`](https://njudd.com/raincloud-ggrain/) was developed by [`Nicholas Judd`](https://njudd.com), [`Jordy van Langen`](https://github.com/jorvlan), Micah Allen, and [`Rogier Kievit`](https://lifespancognitivedynamics.com/). \n\n\u003cpre\u003e\n- Judd, N., van Langen, J., Allen, M., \u0026 Kievit, R.A.\n    \u003ci\u003eggrain: A Rainclouds Geom for 'ggplot2'.\u003c/i\u003e\n    R package version 0.0.4.\n    \u003cb\u003eCRAN\u003c/b\u003e 2023, https://doi.org/10.32614/CRAN.package.ggrain,\n    \u003ca href=\"https://CRAN.R-project.org/package=ggrain\"\u003ehttps://CRAN.R-project.org/package=ggrain\u003c/a\u003e\n\u003c/pre\u003e\n\n\t\n### Example \n\n```r\nggplot(iris, aes(x = 1, y = Sepal.Length)) +\n  geom_rain()\n```\n\n### Installation \n\nThere are two ways to install this package.\n\n1. Download the [CRAN](https://CRAN.R-project.org/package=ggrain) version  \n```r\ninstall.packages(\"ggrain\")\n\nlibrary(ggrain)\n```\n\n2. Download through [GitHub](https://github.com/njudd/ggrain)\n```r\nif (!require(remotes)) {\n    install.packages(\"remotes\")\n}\nremotes::install_github('njudd/ggrain')\n\nlibrary(ggrain)\n```\n\n###  Simple examples\n\n1.  Raincloud per group\n\n\t```r\n\tggplot(iris, aes(x = Species, y = Sepal.Length, fill = \tSpecies)) +\n\t\tgeom_rain(rain.side = 'l')\n\t```\n\n2.  Different groups overlapped\n\n\t```r\n\tggplot(iris, aes(x = 1, y = Sepal.Length, fill = Species)) +\n\t\tgeom_rain(alpha = .5)\n\t```\n\n\n![img](https://raw.githubusercontent.com/njudd/ggrain/main/inst/git_pics/basic_rain.png)\n\n### Vignette\nFor a complete overview of `ggrain` such as a 2-by-2 raincloud plot or multiple repeated measures, please see our [Vignette](https://www.njudd.com/raincloud-ggrain/).\n\n### `ggrain` specific features\n\n`geom_rain` is a combination of 4 different ggplot2 geom's (i.e., point, line, boxplot \u0026 violin).\n\n- `id.long.var`: a grouping variable to connect the lines by\n- `cov`: a covariate to remap the color of the points\n- `Likert`: `True` or `False` response which adds y jittering\n- `rain.side`: Which side to display the rainclouds: 'l' for left, 'r' for right and 'f' for flanking\n\nSpecific 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`).\n\nPosition-related arguments (e.g., jittering, nudging \u0026 width) can be passed with `{point/line/boxplot/violin}.args.pos`, see the help file of `?geom_rain` for defaults\n\n![img](https://raw.githubusercontent.com/njudd/ggrain/main/inst/git_pics/time_group_cov_vin.png)\n\n### Contributions / Issues\n\nWe warmly welcome all contributions. \nYou can open an issue or make a pull request if you would like to add something new!\n\n### Scientific papers that used \u0026 cited 👏 `ggrain`\n\u003cpre\u003e\n\u003cb\u003e*\u003c/b\u003e Robison, M. K., Celaya, X., Ball, B. H., \u0026 Brewer, G. A. (2024). \n    Task sequencing does not systematically affect the factor structure of cognitive abilities. \n    \u003cb\u003ePsychonomic Bulletin \u0026 Review, 31(2), 670-685.\u003c/b\u003e\n    \u003ca href=\"https://doi.org/10.3758/s13423-023-02369-0\"\u003ehttps://doi.org/10.3758/s13423-023-02369-0\u003c/a\u003e\n\u003cb\u003e*\u003c/b\u003e Han, C., Danzeng, Q., Li, L., Bai, S., \u0026 Zheng, C. (2024). \n    Machine learning reveals PANoptosis as a potential reporter and \n    prognostic revealer of tumour microenvironment in lung adenocarcinoma. \n    \u003cb\u003eThe Journal of Gene Medicine, 26(1), e3599.\u003c/b\u003e\n    \u003ca href=\"https://doi.org/10.1002/jgm.3599\"\u003ehttps://doi.org/10.1002/jgm.3599\u003c/a\u003e\n\u003cb\u003e*\u003c/b\u003e Jiang, S., Shang, W. Z., Cui, J. Y., Yan, Y. Y., Yang, T., Hu, Y., ... \u0026 Wu, B. (2023). \n    Prevalence and Predictors of Hemorrhagic Foci on Long-term \n    Follow-up MRI of Recent Single Subcortical Infarcts. \n    \u003cb\u003eTranslational Stroke Research, 1-11.\u003c/b\u003e\n    \u003ca href=\"https://doi.org/10.1007/s12975-023-01224-7\"\u003ehttps://doi.org/10.1007/s12975-023-01224-7\u003c/a\u003e\n\u003cb\u003e*\u003c/b\u003e Senftleben, U., Schoemann, M., \u0026 Scherbaum, S. (2024). \n    Choice repetition bias in intertemporal choice: An eye-tracking study.\n    \u003cb\u003eOSF (Open Science Framework) / PsyArXiv.\u003c/b\u003e\n    \u003ca href=\"https://doi.org/10.31234/osf.io/g3v9m\"\u003ehttps://doi.org/10.31234/osf.io/g3v9m\u003c/a\u003e\n\u003cb\u003e*\u003c/b\u003e Bognar, M., Gyurkovics, M., Aczel, B., \u0026 van Steenbergen, H. (2023).\n    The curve of control: Non-monotonic effects of task difficulty on cognitive control.\n    \u003cb\u003ePsyArXiv\u003c/b\u003e\n    \u003ca href=\"https://doi.org/10.31234/osf.io/ywup9\"\u003ehttps://doi.org/10.31234/osf.io/ywup9\u003c/a\u003e\n\u003c/pre\u003e\t\n\n### Funding\n\u003cimg src=\"https://github.com/njudd/ggrain/blob/main/inst/git_pics/nwo_openscience.jpg\" width=\"150\" height=\"160\" align=\"right\"/\u003e\n\nIn 2021, NWO (Dutch research council) announced their inaugural [NWO Open Science Fund](https://www.nwo.nl/en/researchprogrammes/open-science/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:\n\n- Creating the [`ggrain`](https://github.com/njudd/ggrain) R-package\n- Creating an interactive R Shiny application [`raincloudplots`](https://lcdlab.shinyapps.io/raincloudplots-shiny/)\n- Integrating Raincloudplots in [JASP Statistics](https://jasp-stats.org)\n- Organzing [globally accessible, online workshops](https://github.com/jorvlan/raincloudplots-workshops) to help people create raincloudplots and improve their data visualizations in general.\n\nYou 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: [![Webinar Open Science series S1E2: Open tools for data enrichment and visualization](https://github.com/njudd/ggrain/blob/main/inst/git_pics/raincloudplots_NWO_webinar.png)](https://youtu.be/Kvcyh_9KSbw?t=1910 \"Webinar Open Science series S1E2: Open tools for data enrichment and visualization\")\n\n\n### Raincloud Plots \n\n**Paper**\n\u003cbr\u003e\n\u003cpre\u003e\n- Allen, M., Poggiali, D., Whitaker, K., Marshall, T. R., van Langen, J., \u0026 Kievit, R. A.\n    Raincloud plots: a multi-platform tool for robust data visualization [version 2; peer review: 2 approved] \n    \u003cb\u003eWellcome Open Research\u003c/b\u003e 2021, 4:63. \u003ca href=\"https://doi.org/10.12688/wellcomeopenres.15191.2\"\u003ehttps://doi.org/10.12688/wellcomeopenres.15191.2\u003c/a\u003e\n\u003c/pre\u003e\n\nThere are now ***4*** ways in which you can use our Raincloud Plots tools: \n- through a series of specific easy to modify scripts [https://github.com/RainCloudPlots/RainCloudPlots](https://github.com/RainCloudPlots/RainCloudPlots)\n- through our initial [`raincloudplots`](https://github.com/jorvlan/raincloudplots) package\n- through the newest R-package [`ggrain`](https://github.com/njudd/ggrain)\n- through our R Shiny application: [`raincloudplots`](https://lcdlab.shinyapps.io/raincloudplots-shiny/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjudd%2Fggrain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjudd%2Fggrain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjudd%2Fggrain/lists"}