{"id":51671137,"url":"https://github.com/shawntz/reaborn","last_synced_at":"2026-07-15T00:41:33.867Z","repository":{"id":365625465,"uuid":"932415744","full_name":"shawntz/reaborn","owner":"shawntz","description":"📊 seaborn for R, built on ggplot2 — the same API and defaults, visually indistinguishable plots, and every plot is a ggplot you can extend.","archived":false,"fork":false,"pushed_at":"2026-06-30T21:09:03.000Z","size":13383,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-30T23:08:13.500Z","etag":null,"topics":["data-visualization","ggplot2","plotting","r","r-package","rstats","seaborn","seaborn-for-r","statistical-graphics"],"latest_commit_sha":null,"homepage":"https://reaborn.org/","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/shawntz.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-02-13T21:54:54.000Z","updated_at":"2026-06-30T21:06:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shawntz/reaborn","commit_stats":null,"previous_names":["shawntz/reaborn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shawntz/reaborn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Freaborn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Freaborn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Freaborn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Freaborn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shawntz","download_url":"https://codeload.github.com/shawntz/reaborn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Freaborn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35485403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-14T02:00:06.603Z","response_time":114,"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":["data-visualization","ggplot2","plotting","r","r-package","rstats","seaborn","seaborn-for-r","statistical-graphics"],"created_at":"2026-07-15T00:41:33.184Z","updated_at":"2026-07-15T00:41:33.856Z","avatar_url":"https://github.com/shawntz.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# reaborn \u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" alt=\"reaborn logo\" /\u003e\n\n\u003c!-- badges: start --\u003e\n\n[![dev version](https://raw.githubusercontent.com/shawntz/reaborn/refs/heads/badges/main-branch-version.svg)](https://github.com/shawntz/reaborn/tree/main)\n[![CRAN\nstatus](https://www.r-pkg.org/badges/version/reaborn)](https://CRAN.R-project.org/package=reaborn)\n[![downloads](http://cranlogs.r-pkg.org/badges/grand-total/reaborn?color=brightgreen)](https://cran.r-project.org/package=badger)\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)\n[![build](https://github.com/shawntz/reaborn/actions/workflows/build.yml/badge.svg)](https://github.com/shawntz/reaborn/actions/workflows/build.yml)\n[![air format check](https://github.com/shawntz/reaborn/actions/workflows/air-format-check.yml/badge.svg)](https://github.com/shawntz/reaborn/actions/workflows/air-format-check.yml)\n[![air format suggest](https://github.com/shawntz/reaborn/actions/workflows/air-format-suggest.yaml/badge.svg)](https://github.com/shawntz/reaborn/actions/workflows/air-format-suggest.yaml)\n[![spellcheck](https://github.com/shawntz/reaborn/actions/workflows/spellcheck.yml/badge.svg)](https://github.com/shawntz/reaborn/actions/workflows/spellcheck.yml)\n[![website](https://github.com/shawntz/reaborn/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/shawntz/reaborn/actions/workflows/pkgdown.yaml)\n\n\u003c!-- badges: end --\u003e\n\n**reaborn** is an R port of Python's [seaborn](https://seaborn.pydata.org/). It\nmirrors seaborn's public function API — identical function names, argument names,\nand defaults — and renders **visually indistinguishable** plots using\n[ggplot2](https://ggplot2.tidyverse.org/). You can paste seaborn Python into R\nand get the same plot.\n\nBecause every reaborn plot **is** a ggplot, you can extend it with the entire\nggplot2 grammar of graphics — something seaborn can't do.\n\n```r\ninstall.packages(\"reaborn\")\nlibrary(reaborn)\n```\n\nOr install the development version from GitHub:\n\n```r\n# install.packages(\"remotes\")\nremotes::install_github(\"shawntz/reaborn\")\n```\n\n## Paste seaborn Python into R\n\n`library(reaborn)` installs the seaborn default theme and palette globally (like\n`sns.set_theme()`), exposes `sns.`-prefixed aliases for every function, and binds\nthe Python literals `True`/`False`/`None`. So this seaborn snippet runs verbatim:\n\n```r\npenguins \u003c- load_dataset(\"penguins\")\n\nsns.scatterplot(data = penguins, x = \"bill_length_mm\", y = \"bill_depth_mm\",\n                hue = \"species\")\n\nsns.histplot(data = penguins, x = \"flipper_length_mm\", hue = \"species\",\n             multiple = \"stack\", kde = True)\n```\n\nOr write it idiomatically (the `sns.` prefix is optional):\n\n```r\nscatterplot(data = penguins, x = \"bill_length_mm\", y = \"bill_depth_mm\", hue = \"species\")\n```\n\n## reaborn plots are ggplots\n\nEvery function returns a `ggplot`, so compose freely:\n\n```r\nscatterplot(data = penguins, x = \"bill_length_mm\", y = \"bill_depth_mm\", hue = \"species\") +\n  ggplot2::facet_wrap(~island) +\n  ggplot2::scale_x_log10() +\n  ggplot2::labs(title = \"Penguin bills\")\n```\n\n## What's implemented\n\nThe full classic seaborn function API:\n\n| Module | Functions |\n|---|---|\n| Relational | `scatterplot` `lineplot` `relplot` |\n| Distributions | `histplot` `kdeplot` `ecdfplot` `rugplot` `displot` |\n| Categorical | `boxplot` `violinplot` `boxenplot` `stripplot` `swarmplot` `barplot` `pointplot` `countplot` `catplot` |\n| Regression | `regplot` `residplot` `lmplot` |\n| Matrix | `heatmap` `clustermap` |\n| Grids | `pairplot` `jointplot` `FacetGrid` |\n| Misc | `palplot` `dogplot` |\n| Palettes | `color_palette` `hls_palette` `husl_palette` `cubehelix_palette` `light_palette` `dark_palette` `diverging_palette` `blend_palette` `mpl_palette` `set_color_codes` … |\n| Theming | `set_theme` `set_style` `set_context` `axes_style` `plotting_context` `despine` `move_legend` … |\n\n## Fidelity\n\nreaborn matches seaborn by extracting ground-truth constants from a real seaborn\ninstall rather than approximating:\n\n- **Palettes** match seaborn's hex codes exactly.\n- **Themes** reproduce the five seaborn styles × four contexts.\n\n## Python → R conversion notes\n\nMost seaborn calls paste over directly. The remaining edits are language-level:\n\n| Python | R |\n|---|---|\n| `sns.scatterplot(...)` | works as-is (`sns.scatterplot`) |\n| `data=df, x=\"col\", hue=\"g\"` | works as-is (named args, string columns) |\n| `True` / `False` / `None` | bound for you, or write `TRUE` / `FALSE` / `NULL` |\n| `[1, 2, 3]` (list) | `c(1, 2, 3)` |\n| `{\"a\": 1}` (dict) | `list(a = 1)` |\n| `(1, 2)` (tuple) | `c(1, 2)` |\n| `df.col` | `df$col` |\n\n## License\n\nBSD 3-Clause (matching seaborn). seaborn is © Michael Waskom.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshawntz%2Freaborn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshawntz%2Freaborn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshawntz%2Freaborn/lists"}