{"id":13858265,"url":"https://github.com/nanxstats/ggsci","last_synced_at":"2025-04-14T06:52:39.174Z","repository":{"id":45986724,"uuid":"54716695","full_name":"nanxstats/ggsci","owner":"nanxstats","description":"🦄 Scientific journal and sci-fi themed color palettes for ggplot2","archived":false,"fork":false,"pushed_at":"2024-07-20T01:09:15.000Z","size":173902,"stargazers_count":681,"open_issues_count":4,"forks_count":71,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-10T07:18:48.531Z","etag":null,"topics":["color-palettes","data-visualization","ggplot2","ggsci","sci-fi","scientific-journals","visualization"],"latest_commit_sha":null,"homepage":"https://nanx.me/ggsci/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nanxstats.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2016-03-25T12:14:26.000Z","updated_at":"2025-04-09T14:04:45.000Z","dependencies_parsed_at":"2023-01-18T18:34:15.708Z","dependency_job_id":"a483b9a0-601f-4ade-bcaa-1dcb818f885a","html_url":"https://github.com/nanxstats/ggsci","commit_stats":{"total_commits":189,"total_committers":7,"mean_commits":27.0,"dds":"0.38095238095238093","last_synced_commit":"2f06ac4ee32312ca217778358555aadd41f18678"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanxstats%2Fggsci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanxstats%2Fggsci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanxstats%2Fggsci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanxstats%2Fggsci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanxstats","download_url":"https://codeload.github.com/nanxstats/ggsci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837275,"owners_count":21169373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["color-palettes","data-visualization","ggplot2","ggsci","sci-fi","scientific-journals","visualization"],"created_at":"2024-08-05T03:02:02.246Z","updated_at":"2025-04-14T06:52:39.140Z","avatar_url":"https://github.com/nanxstats.png","language":"R","readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include=FALSE}\nknitr::knit_hooks$set(pngquant = knitr::hook_pngquant)\n\nknitr::opts_chunk$set(\n  echo = FALSE,\n  message = FALSE,\n  fig.path = \"man/figures/README-\",\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  dev = \"ragg_png\",\n  dpi = 72,\n  fig.retina = 2,\n  fig.width = 10.6667,\n  fig.height = 3.3334,\n  fig.align = \"center\",\n  out.width = \"100%\",\n  pngquant = \"--speed=1 --quality=50\"\n)\n```\n\n# ggsci \u003cimg src=\"man/figures/logo.png\" align=\"right\" width=\"120\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/nanxstats/ggsci/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/nanxstats/ggsci/actions/workflows/R-CMD-check.yaml)\n[![CRAN Version](https://www.r-pkg.org/badges/version/ggsci)](https://cran.r-project.org/package=ggsci)\n[![Downloads from the RStudio CRAN mirror](https://cranlogs.r-pkg.org/badges/ggsci)](https://cran.r-project.org/package=ggsci)\n\u003c!-- badges: end --\u003e\n\nggsci offers a collection of ggplot2 color palettes inspired by\nscientific journals, data visualization libraries, science fiction movies,\nand TV shows.\n\n## Installation\n\nYou can install ggsci from CRAN:\n\n```r\ninstall.packages(\"ggsci\")\n```\n\nOr try the development version on GitHub:\n\n```r\nremotes::install_github(\"nanxstats/ggsci\")\n```\n\n[Browse the vignette](https://nanx.me/ggsci/articles/ggsci.html) (or open with\n`vignette(\"ggsci\")` in R) for a quick-start guide.\n\n## Gallery\n\n```{r}\nlibrary(\"ggsci\")\nlibrary(\"ggplot2\")\nlibrary(\"gridExtra\")\n\ndata(\"diamonds\")\n\np1 \u003c- ggplot(\n  subset(diamonds, carat \u003e= 2.2),\n  aes(x = table, y = price, colour = cut)\n) +\n  geom_point(alpha = 0.7) +\n  geom_smooth(method = \"loess\", alpha = 0.05, linewidth = 1, span = 1) +\n  theme_bw() +\n  theme(\n    axis.title.x = element_blank(),\n    axis.title.y = element_blank()\n  )\n\np2 \u003c- ggplot(\n  subset(diamonds, carat \u003e 2.2 \u0026 depth \u003e 55 \u0026 depth \u003c 70),\n  aes(x = depth, fill = cut)\n) +\n  geom_histogram(colour = \"black\", binwidth = 1, position = \"dodge\") +\n  theme_bw() +\n  theme(\n    axis.title.x = element_blank(),\n    axis.title.y = element_blank()\n  )\n```\n\n### NPG\n\n```{r, ggsci-npg}\np1_npg \u003c- p1 + scale_color_npg()\np2_npg \u003c- p2 + scale_fill_npg()\ngrid.arrange(p1_npg, p2_npg, ncol = 2)\n```\n\n### AAAS\n\n```{r, ggsci-aaas}\np1_aaas \u003c- p1 + scale_color_aaas()\np2_aaas \u003c- p2 + scale_fill_aaas()\ngrid.arrange(p1_aaas, p2_aaas, ncol = 2)\n```\n\n### NEJM\n\n```{r, ggsci-nejm}\np1_nejm \u003c- p1 + scale_color_nejm()\np2_nejm \u003c- p2 + scale_fill_nejm()\ngrid.arrange(p1_nejm, p2_nejm, ncol = 2)\n```\n\n### Lancet\n\n```{r, ggsci-lancet}\np1_lancet \u003c- p1 + scale_color_lancet()\np2_lancet \u003c- p2 + scale_fill_lancet()\ngrid.arrange(p1_lancet, p2_lancet, ncol = 2)\n```\n\n### JAMA\n\n```{r, ggsci-jama}\np1_jama \u003c- p1 + scale_color_jama()\np2_jama \u003c- p2 + scale_fill_jama()\ngrid.arrange(p1_jama, p2_jama, ncol = 2)\n```\n\n### BMJ\n\n```{r, ggsci-bmj}\np1_bmj \u003c- p1 + scale_color_bmj()\np2_bmj \u003c- p2 + scale_fill_bmj()\ngrid.arrange(p1_bmj, p2_bmj, ncol = 2)\n```\n\n### JCO\n\n```{r, ggsci-jco}\np1_jco \u003c- p1 + scale_color_jco()\np2_jco \u003c- p2 + scale_fill_jco()\ngrid.arrange(p1_jco, p2_jco, ncol = 2)\n```\n\n### UCSCGB\n\n```{r, ggsci-ucscgb}\np1_ucscgb \u003c- p1 + scale_color_ucscgb()\np2_ucscgb \u003c- p2 + scale_fill_ucscgb()\ngrid.arrange(p1_ucscgb, p2_ucscgb, ncol = 2)\n```\n\n### D3\n\n```{r, ggsci-d3}\np1_d3 \u003c- p1 + scale_color_d3()\np2_d3 \u003c- p2 + scale_fill_d3()\ngrid.arrange(p1_d3, p2_d3, ncol = 2)\n```\n\n### Observable\n\n```{r, ggsci-observable}\np1_observable \u003c- p1 + scale_color_observable()\np2_observable \u003c- p2 + scale_fill_observable()\ngrid.arrange(p1_observable, p2_observable, ncol = 2)\n```\n\n### LocusZoom\n\n```{r, ggsci-locuszoom}\np1_locuszoom \u003c- p1 + scale_color_locuszoom()\np2_locuszoom \u003c- p2 + scale_fill_locuszoom()\ngrid.arrange(p1_locuszoom, p2_locuszoom, ncol = 2)\n```\n\n### IGV\n\n```{r, ggsci-igv}\np1_igv \u003c- p1 + scale_color_igv()\np2_igv \u003c- p2 + scale_fill_igv()\ngrid.arrange(p1_igv, p2_igv, ncol = 2)\n```\n\n### COSMIC\n\n```{r, ggsci-cosmic}\np1_cosmic_hallmarks_light \u003c- p1 + scale_color_cosmic(\"hallmarks_light\")\np2_cosmic_hallmarks_light \u003c- p2 + scale_fill_cosmic(\"hallmarks_light\")\ngrid.arrange(p1_cosmic_hallmarks_light, p2_cosmic_hallmarks_light, ncol = 2)\n\np1_cosmic_hallmarks_dark \u003c- p1 + scale_color_cosmic(\"hallmarks_dark\")\np2_cosmic_hallmarks_dark \u003c- p2 + scale_fill_cosmic(\"hallmarks_dark\")\ngrid.arrange(p1_cosmic_hallmarks_dark, p2_cosmic_hallmarks_dark, ncol = 2)\n\np1_cosmic_signature \u003c- p1 + scale_color_cosmic(\"signature_substitutions\")\np2_cosmic_signature \u003c- p2 + scale_fill_cosmic(\"signature_substitutions\")\ngrid.arrange(p1_cosmic_signature, p2_cosmic_signature, ncol = 2)\n```\n\n### UChicago\n\n```{r, ggsci-uchicago}\np1_uchicago \u003c- p1 + scale_color_uchicago()\np2_uchicago \u003c- p2 + scale_fill_uchicago()\ngrid.arrange(p1_uchicago, p2_uchicago, ncol = 2)\n```\n\n### Star Trek\n\n```{r, ggsci-startrek}\np1_startrek \u003c- p1 + scale_color_startrek()\np2_startrek \u003c- p2 + scale_fill_startrek()\ngrid.arrange(p1_startrek, p2_startrek, ncol = 2)\n```\n\n### Tron Legacy\n\n```{r, ggsci-tron}\np1_tron \u003c- p1 +\n  theme_dark() +\n  theme(\n    panel.background = element_rect(fill = \"#2D2D2D\"),\n    legend.key = element_rect(fill = \"#2D2D2D\"),\n    axis.title.x = element_blank(), axis.title.y = element_blank()\n  ) +\n  scale_color_tron()\np2_tron \u003c- p2 +\n  theme_dark() +\n  theme(\n    panel.background = element_rect(fill = \"#2D2D2D\"),\n    axis.title.x = element_blank(), axis.title.y = element_blank()\n  ) +\n  scale_fill_tron()\n\ngrid.arrange(p1_tron, p2_tron, ncol = 2)\n```\n\n### Futurama\n\n```{r, ggsci-futurama}\np1_futurama \u003c- p1 + scale_color_futurama()\np2_futurama \u003c- p2 + scale_fill_futurama()\ngrid.arrange(p1_futurama, p2_futurama, ncol = 2)\n```\n\n### Rick and Morty\n\n```{r, ggsci-rickandmorty}\np1_rickandmorty \u003c- p1 + scale_color_rickandmorty()\np2_rickandmorty \u003c- p2 + scale_fill_rickandmorty()\ngrid.arrange(p1_rickandmorty, p2_rickandmorty, ncol = 2)\n```\n\n### The Simpsons\n\n```{r, ggsci-simpsons}\np1_simpsons \u003c- p1 + scale_color_simpsons()\np2_simpsons \u003c- p2 + scale_fill_simpsons()\ngrid.arrange(p1_simpsons, p2_simpsons, ncol = 2)\n```\n\n### Flat UI\n\n```{r, ggsci-flatui}\np1_flatui \u003c- p1 + scale_color_flatui()\np2_flatui \u003c- p2 + scale_fill_flatui()\ngrid.arrange(p1_flatui, p2_flatui, ncol = 2)\n```\n\n### Frontiers\n\n```{r, ggsci-frontiers}\np1_frontiers \u003c- p1 + scale_color_frontiers()\np2_frontiers \u003c- p2 + scale_fill_frontiers()\ngrid.arrange(p1_frontiers, p2_frontiers, ncol = 2)\n```\n\n### GSEA\n\n```{r}\ndata(\"mtcars\")\ncor \u003c- cor(unname(mtcars))\ncor_melt \u003c- data.frame(\n  Var1 = rep(seq_len(nrow(cor)), times = ncol(cor)),\n  Var2 = rep(seq_len(ncol(cor)), each = nrow(cor)),\n  value = as.vector(cor)\n)\n\np3 \u003c- ggplot(cor_melt, aes(x = Var1, y = Var2, fill = value)) +\n  geom_tile(colour = \"black\", linewidth = 0.3) +\n  theme_void() +\n  theme(axis.title.x = element_blank(), axis.title.y = element_blank())\n```\n\n```{r, ggsci-gsea, fig.height=4}\np3_gsea \u003c- p3 + scale_fill_gsea()\np3_gsea_inv \u003c- p3 + scale_fill_gsea(reverse = TRUE)\ngrid.arrange(p3_gsea, p3_gsea_inv, ncol = 2)\n```\n\n### Bootstrap 5\n\n```{r}\nset.seed(42)\nk \u003c- 6\nx \u003c- diag(k)\nx[upper.tri(x)] \u003c- runif(sum(1:(k - 1)), 0, 1)\nx_melt \u003c- data.frame(\n  Var1 = rep(seq_len(nrow(x)), times = ncol(x)),\n  Var2 = rep(seq_len(ncol(x)), each = nrow(x)),\n  value = as.vector(x)\n)\n\np4 \u003c- ggplot(x_melt, aes(x = Var1, y = Var2, fill = value)) +\n  geom_tile(colour = \"black\", linewidth = 0.3) +\n  scale_x_continuous(expand = c(0, 0)) +\n  scale_y_continuous(expand = c(0, 0)) +\n  theme_bw() +\n  theme(\n    legend.position = \"none\", plot.background = element_blank(),\n    axis.line = element_blank(), axis.ticks = element_blank(),\n    axis.text.x = element_blank(), axis.text.y = element_blank(),\n    axis.title.x = element_blank(), axis.title.y = element_blank(),\n    panel.background = element_blank(), panel.border = element_blank(),\n    panel.grid.major = element_blank(), panel.grid.minor = element_blank()\n  )\n```\n\n```{r, ggsci-bs5, fig.height=2.6}\ngrid.arrange(\n  p4 + scale_fill_bs5(\"blue\"), p4 + scale_fill_bs5(\"indigo\"),\n  p4 + scale_fill_bs5(\"purple\"), p4 + scale_fill_bs5(\"pink\"),\n  p4 + scale_fill_bs5(\"red\"), p4 + scale_fill_bs5(\"orange\"),\n  p4 + scale_fill_bs5(\"yellow\"), p4 + scale_fill_bs5(\"green\"),\n  p4 + scale_fill_bs5(\"teal\"), p4 + scale_fill_bs5(\"cyan\"),\n  p4 + scale_fill_bs5(\"gray\"),\n  ncol = 8\n)\n```\n\n### Material Design\n\n```{r, ggsci-material, fig.height=3.8}\ngrid.arrange(\n  p4 + scale_fill_material(\"red\"), p4 + scale_fill_material(\"pink\"),\n  p4 + scale_fill_material(\"purple\"), p4 + scale_fill_material(\"deep-purple\"),\n  p4 + scale_fill_material(\"indigo\"), p4 + scale_fill_material(\"blue\"),\n  p4 + scale_fill_material(\"light-blue\"), p4 + scale_fill_material(\"cyan\"),\n  p4 + scale_fill_material(\"teal\"), p4 + scale_fill_material(\"green\"),\n  p4 + scale_fill_material(\"light-green\"), p4 + scale_fill_material(\"lime\"),\n  p4 + scale_fill_material(\"yellow\"), p4 + scale_fill_material(\"amber\"),\n  p4 + scale_fill_material(\"orange\"), p4 + scale_fill_material(\"deep-orange\"),\n  p4 + scale_fill_material(\"brown\"), p4 + scale_fill_material(\"grey\"),\n  p4 + scale_fill_material(\"blue-grey\"),\n  ncol = 8\n)\n```\n\n### Tailwind CSS\n\n```{r, ggsci-tw3, fig.height=3.8}\ngrid.arrange(\n  p4 + scale_fill_tw3(\"slate\"), p4 + scale_fill_tw3(\"gray\"),\n  p4 + scale_fill_tw3(\"zinc\"), p4 + scale_fill_tw3(\"neutral\"),\n  p4 + scale_fill_tw3(\"stone\"), p4 + scale_fill_tw3(\"red\"),\n  p4 + scale_fill_tw3(\"orange\"), p4 + scale_fill_tw3(\"amber\"),\n  p4 + scale_fill_tw3(\"yellow\"), p4 + scale_fill_tw3(\"lime\"),\n  p4 + scale_fill_tw3(\"green\"), p4 + scale_fill_tw3(\"emerald\"),\n  p4 + scale_fill_tw3(\"teal\"), p4 + scale_fill_tw3(\"cyan\"),\n  p4 + scale_fill_tw3(\"sky\"), p4 + scale_fill_tw3(\"blue\"),\n  p4 + scale_fill_tw3(\"indigo\"), p4 + scale_fill_tw3(\"violet\"),\n  p4 + scale_fill_tw3(\"purple\"), p4 + scale_fill_tw3(\"fuchsia\"),\n  p4 + scale_fill_tw3(\"pink\"), p4 + scale_fill_tw3(\"rose\"),\n  ncol = 8\n)\n```\n\n## Contribute\n\nTo contribute to this project, please take a look at the\n[Contributing Guidelines](https://nanx.me/ggsci/CONTRIBUTING.html) first.\nPlease note that the ggsci project is released with a\n[Contributor Code of Conduct](https://nanx.me/ggsci/CODE_OF_CONDUCT.html).\nBy contributing to this project, you agree to abide by its terms.\n","funding_links":[],"categories":["R"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanxstats%2Fggsci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanxstats%2Fggsci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanxstats%2Fggsci/lists"}