Description
Distinct Colour Palettes Based on 'iwanthue'.
Description
Creating effective colour palettes for figures is challenging. This package generates and plot palettes of optimally distinct colours in perceptually uniform colour space, based on 'iwanthue' <http://tools.medialab.sciences-po.fr/iwanthue/>. This is done through k-means clustering of CIE Lab colour space, according to user-selected constraints on hue, chroma, and lightness.
README.md
hues
This package generates and plot palettes of optimally distinct colours in perceptually uniform colour space, based on iwanthue. This is done through k-means clustering of CIE Lab colour space, according to user-selected constraints on hue, chroma, and lightness.
iwanthue
palettes can be added directly onto ggplot2 objects via the function scale_colour_iwanthue
.
Installation
The current CRAN version of hues
can be installed with:
install.packages('hues')
The development version of hues
can be installed using install_github
from the devtools
package:
# install.packages('devtools') # uncomment if devtools isn't already installed
devtools::install_github('johnbaums/hues')
Examples
The examples below show palettes corresponding to some presets given at the iwanthue website.
library(hues)
iwanthue(5, plot=TRUE)
iwanthue(5, 0, 240, 0, 24, 0, 100, plot=TRUE) # shades
iwanthue(5, 0, 360, 0, 54, 67, 100, plot=TRUE) # pastel
iwanthue(5, 0, 360, 54, 180, 27, 67, plot=TRUE) # pimp
iwanthue(5, 0, 360, 36, 180, 13, 73, plot=TRUE) # intense
iwanthue(3, 0, 300, 60, 180, 73, 100, plot=TRUE) # fluoro
iwanthue(3, 220, 260, 12, 150, 0, 53, plot=TRUE) # blue ocean
ggplot2
integration
library(ggplot2)
ggplot(iris, aes(x=Petal.Width, y=Petal.Length)) +
geom_point(aes(color=Species), size=3) +
scale_colour_iwanthue()
ggplot(iris, aes(x=Petal.Width, y=Petal.Length)) +
geom_point(aes(color=Species), size=3) +
scale_colour_iwanthue(hmax = 90)
ggplot(iris, aes(x=Petal.Width, y=Petal.Length)) +
geom_point(aes(color=Species), size=3) +
scale_colour_iwanthue(hmin=0, hmax=300, cmin=60, cmax=180, lmin=73, lmax=100)