Learn R Programming

⚠️There's a newer version (1.16.0) of this package.Take me there.

khroma

Overview

Color blindness affects a large number of individuals. When communicating scientific results colour palettes must therefore be carefully chosen to be accessible to all readers.

This R package provides an implementation of Paul Tol’s colour schemes[1]. These schemes are ready for each type of data (qualitative, diverging or sequential), with colours that are distinct for all people, including colour-blind readers. This package also provides tools to simulate colour-blindness and to test how well the colours of any palette are identifiable. To simulate colour-blindness in production-ready R figures you may also be interested in the colorblindr package.

For specific uses, several scientific thematic schemes (geologic timescale, land cover, FAO soils, etc.) are implemented, but these colour schemes may not be colour-blind safe.

All these colour schemes are implemented for use with R graphics or ggplot2.

Installation

You can install the released version of khroma from CRAN:

install.packages("khroma")

Or install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("nfrerebeau/khroma")

Usage

# Load packages
library(khroma)
library(ggplot2)

Colour palettes and scales

colour() returns a palette function that when called with a single integer argument returns a vector of colours.

bright <- colour("bright")

If crayon is installed, colours will be nicely printed in the console.

bright(7)

You can disable this feature by setting the crayon.enabled option to FALSE.

options(crayon.enabled = FALSE)
bright(7)
#>      blue       red     green    yellow      cyan    purple      grey 
#> "#4477AA" "#EE6677" "#228833" "#CCBB44" "#66CCEE" "#AA3377" "#BBBBBB"
# Show the colour palette
plot_scheme(bright(7), colours = TRUE)
# Use with ggplot2
ggplot(data = mpg, mapping = aes(x = displ, y = hwy, colour = class)) +
  geom_point() +
  scale_colour_bright()

Diagnostic tools

# Test how well the colours are identifiable
plot_map(bright(7))

# Simulate colour-blindness
# convert() returns a modified palette function
deuteranopia <- convert(bright, mode = "deuteranopia")
plot_scheme(deuteranopia(7), colours = TRUE)

protanopia <- convert(bright, mode = "protanopia")
plot_scheme(protanopia(7), colours = TRUE)

tritanopia <- convert(bright, mode = "tritanopia")
plot_scheme(tritanopia(7), colours = TRUE)

achromatopsia <- convert(bright, mode = "achromatopsia")
plot_scheme(achromatopsia(7), colours = TRUE)

Colour Schemes

Paul Tol’s Colour Schemes

Paul Tol offers carefully chosen schemes, ready for each type of data, with colours that are:

  • Distinct for all people, including colour-blind readers.
  • Distinct from black and white.
  • Distinct on screen and paper.
  • Matching well together.

All the scales presented in Paul Tol’s technical note are implemented here, for use with graphics or ggplot2. Refer to the original document for details about the recommended uses.

See the vignette for a more complete overview:

utils::vignette("tol")

Scientific colour schemes

The following scientific colour schemes are available:

  • International Chronostratigraphic Chart.
  • AVHRR Global Land Cover Classification.
  • FAO Soil Reference Groups.

More will be added in future releases (suggestions are welcome).

Contributing

Please note that the khroma project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

  1. Tol, Paul (2018). Colour Schemes. SRON. Technical Note No. SRON/EPS/TN/09-002. URL: https://personal.sron.nl/~pault/data/colourschemes.pdf.

Copy Link

Version

Install

install.packages('khroma')

Monthly Downloads

1,332

Version

1.3.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Frerebeau

Last Published

October 26th, 2019

Functions in khroma (1.3.0)

scale_colour_stratigraphy

Geologic Timescale Colour Scheme for ggplot2
khroma-package

khroma: Colour Schemes for Scientific Data Visualization
scale_colour_land

AVHRR Global Land Cover Classification Colour Scheme for ggplot2
scale_tol_diverging

Paul Tol's Diverging Colour Schemes for ggplot2
scale_tol_sequential

Paul Tol's Sequential Colour Schemes for ggplot2
plot

Plot Colour Scheme
scale_colour_soil

FAO Soil Reference Groups Colour Scheme for ggplot2
colour

Colour Palette
scale_tol_discrete

Paul Tol's Discrete Colour Schemes for ggplot2
convert

Simulate Colour-Blindness