Skip to content

colorblind friendly color palettes and ggplot2 graphic system extensions for publication-quality scientific figures

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

JLSteenwyk/ggpubfigs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo


ggpubfigs is a ggplot2 extension that helps create publication ready figures for the life sciences.
Importantly, ggpubfigs implements themes and color palettes that are both aesthetically pleasing and colorblind friendly.

If you found ggpubfigs helpful, please cite: ggpubfigs: Colorblind-Friendly Color Palettes and ggplot2 Graphic System Extensions for Publication-Quality Scientific Figures. DOI: 10.1128/MRA.00871-21


Guide

Install
Quick Start
Color palettes
Palette Swatches and Hex Codes
Themes
FAQ
Change Log
Versioning
Acknowledgements


Install

# execute this command only the first time you use ggpubfigs
devtools::install_github("JLSteenwyk/ggpubfigs")
# load ggpubfigs
library(ggpubfigs)


Quick Start

These quick start examples demonstrate how to implement two aesthetically pleasing themes and color palettes.

# using the "ito_seven" color palette and theme_big_simple()
ggplot(mtcars, aes(factor(carb), fill=factor(cyl))) + geom_bar() + scale_fill_manual(values = friendly_pal("ito_seven")) + theme_big_simple()

ito_simple


# using the "bright_seven" color palette and theme_big_grid()
ggplot(mtcars, aes(factor(carb), fill=factor(cyl))) + geom_bar() + scale_fill_manual(values = friendly_pal("bright_seven")) + theme_big_grid()

bright_grid



Color palettes

Color palettes are all colorblind friendly. Thus, your figures will be accessible to more people, which is inarguably better for your audience and you.

Color palettes are named using the following scheme: identifier (underscore) number of colors in color palette.
Palette swatches and hex codes are shown below for quick visual comparison.

To use these colorblind friendly color palettes, use the following command as an example for both discrete and continuous purposes:

ggplot(mtcars, aes(factor(carb), fill=factor(cyl))) + geom_bar() + scale_fill_manual(values = friendly_pal("contrast_three"))

friendly_pals


pal <- friendly_pal("contrast_three", 50, type = "continuous")
image(volcano, col = pal)

friendly_pals



Palette Swatches and Hex Codes

Palette Swatches Colors used
bright_seven #4477AA, #228833, #AA3377, #BBBBBB, #66CCEE, #CCBB44, #EE6677
contrast_three #004488, #BB5566, #DDAA33
vibrant_seven #0077BB, #EE7733, #33BBEE, #CC3311, #009988, #EE3377, #BBBBBB
muted_nine #332288, #117733, #CC6677, #88CCEE, #999933, #882255, #44AA99, #DDCC77, #AA4499
nickel_five #648FFF, #FE6100, #785EF0, #FFB000, #DC267F
ito_seven #0072B2, #D55E00, #009E73, #CC79A7, #56B4E9, #E69F00, #F0E442
ibm_five #648FFF, #785EF0, #DC267F, #FE6100, #FFB000
wong_eight #E69F00, #56B4E9, #009E73, #F0E442, #0072B2, #D55E00, #CC79A7, #000000
tol_eight #332288, #117733, #44AA99, #88CCEE, #DDCC77, #CC6677, #AA4499, #882255
zesty_four #F5793A, #A95AA1, #85C0F9, #0F2080
retro_four #601A4A, #EE442F, #63ACBE, #F9F4EC
tableau_ten #4E79A7, #F28E2B, #E15759, #76B7B2, #59A14F, #EDC948, #B07AA1, #FF9DA7, #9C755F, #BAB0AC
glasbey_twelve #0000FF, #FF0000, #00FF00, #000033, #FF00B6, #005300, #FFD300, #009FFF, #9A4D42, #00FFBE, #783FC1, #1F9698
viridis_eight #440154, #46337E, #365C8D, #277F8E, #1FA187, #4AC16D, #9FDA3A, #FDE725
cividis_eight #00204D, #16396D, #4B546C, #6C6E72, #8E8A79, #B3A772, #DBC761, #FFEA46


Themes

Publication-ready figures

theme_grid()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_grid()

Grid


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_grid()

Grid


theme_big_grid()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_big_grid()

Grid


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_big_grid()

Grid


theme_simple()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_simple()

Simple


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_simple()

Simple


theme_big_simple()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_big_simple()

Simple


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_big_simple()

Simple


theme_grey()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_grey()

Grey


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_grey()

Grey


Presentation-ready figures

theme_black()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_black()

Black


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_black()

Black


theme_blue()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_blue()

Blue


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_blue()

Blue


theme_red()

ggplot(iris, aes(Sepal.Length, Petal.Width, color = Species)) + geom_point() + theme_red()

Red


ggplot(iris, aes(Sepal.Length, fill = Species)) + geom_histogram() + theme_red()

Red



FAQ

Can I submit color palettes or themes to be incorporated into ggpubfigs?
Yes! Submissions are encouraged, please feel free to contact me via twitter or from my contact information.


Acknowledgements

I would like to thank the blooming R community for all the very helpful online forums, discussions, and open source books that have helped me learn R.

I would also like to acknowledge that some of the example usage and color palette code was developed based on open source code from the wes anderson color palette package.


Change Log

For full release notes, see NEWS.md.

1.1.3 (2026-02-24)

  • Added tableau_ten, glasbey_twelve, viridis_eight, and cividis_eight.
  • Added test coverage for new palette availability and expected sizes.
  • Updated palette documentation/man pages and README palette table.

1.1.2 (2026-02-24)

  • Added testthat coverage for palette and theme behavior.
  • Migrated theme internals to linewidth in element_line() and element_rect().
  • Fixed friendly_pal() documentation to reference ito_seven.

1.1.1 (2026-02-17)

  • Added CI-based R compatibility checks for R 4.4, R 4.5, and devel.
  • Fixed CI dependency setup and package metadata/import issues for R CMD check.
  • Updated build ignore settings and README R-version testing badge.

About

colorblind friendly color palettes and ggplot2 graphic system extensions for publication-quality scientific figures

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages