Paul Tol's smooth rainbow Sequential Color Scheme

## Usage

scale_colour_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "colour"
)

scale_color_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "colour"
)

scale_fill_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "fill"
)

scale_edge_colour_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "edge_colour"
)

scale_edge_color_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "edge_colour"
)

scale_edge_fill_smoothrainbow(
...,
reverse = FALSE,
range = c(0, 1),
discrete = FALSE,
aesthetics = "edge_fill"
)

## Arguments

...

Arguments passed to ggplot2::continuous_scale().

reverse

A logical scalar. Should the resulting vector of colors be reversed?

range

A length-two numeric vector specifying the fraction of the scheme's color domain to keep.

discrete

A logical scalar: should the color scheme be used as a discrete scale? If TRUE, it is a departure from Paul Tol's recommendations and likely a very poor use of color.

aesthetics

A character string or vector of character strings listing the name(s) of the aesthetic(s) that this scale works with.

## Value

A continuous scale.

## Interpolation

If more colors than defined are needed from a given scheme, the color coordinates are linearly interpolated to provide a continuous version of the scheme, with the exception of the discrete rainbow scheme (see below).

Note that the default color for NA can be overridden by passing a value to ggplot2::continuous_scale().

## Rainbow Color Scheme

As a general rule, ordered data should not be represented using a rainbow scheme. There are three main arguments against such use (Tol 2018):

• The spectral order of visible light carries no inherent magnitude message.

• Some bands of almost constant hue with sharp transitions between them, can be perceived as jumps in the data.

• Color-blind people have difficulty distinguishing some colors of the rainbow.

If such use cannot be avoided, Paul Tol's technical note provides two color schemes that are reasonably clear in color-blind vision. To remain color-blind safe, these two schemes must comply with the following conditions:

discreterainbow

This scheme must not be interpolated.

smoothrainbow

This scheme does not have to be used over the full range.

## References

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

Other sequential color schemes: scale_crameri_acton, scale_crameri_bamako, scale_crameri_batlowK, scale_crameri_batlowW, scale_crameri_batlow, scale_crameri_bilbao, scale_crameri_buda, scale_crameri_davos, scale_crameri_devon, scale_crameri_grayC, scale_crameri_hawaii, scale_crameri_imola, scale_crameri_lajolla, scale_crameri_lapaz, scale_crameri_nuuk, scale_crameri_oslo, scale_crameri_tokyo, scale_crameri_turku, scale_tol_YlOrBr, scale_tol_incandescent, scale_tol_iridescent

Other Paul Tol's color schemes: scale_tol_BuRd, scale_tol_PRGn, scale_tol_YlOrBr, scale_tol_bright, scale_tol_dark, scale_tol_discreterainbow, scale_tol_highcontrast, scale_tol_incandescent, scale_tol_iridescent, scale_tol_light, scale_tol_mediumcontrast, scale_tol_muted, scale_tol_nightfall, scale_tol_pale, scale_tol_sunset, scale_tol_vibrant

N. Frerebeau

## Examples

data(faithfuld, package = "ggplot2")

ggplot2::ggplot(faithfuld, ggplot2::aes(waiting, eruptions, fill = density)) +
ggplot2::geom_raster() +
scale_fill_YlOrBr()

ggplot2::ggplot(faithfuld, ggplot2::aes(waiting, eruptions, fill = density)) +
ggplot2::geom_raster() +
scale_fill_iridescent(reverse = TRUE)

ggplot2::ggplot(faithfuld, ggplot2::aes(waiting, eruptions, fill = density)) +
ggplot2::geom_raster() +
scale_fill_smoothrainbow(range = c(0.25, 1))