Learn R Programming

hues (version 0.2.0)

iwanthue: Generate a colour palette by k-means clustering of CIE Lab colour space.

Description

Generate a palette of distinct colours through k-means clustering of CIE Lab colour space.

Usage

iwanthue(
  n,
  hmin = 0,
  hmax = 360,
  cmin = 0,
  cmax = 180,
  lmin = 0,
  lmax = 100,
  plot = FALSE,
  random = FALSE
)

Arguments

n

Numeric. The number of colours to generate.

hmin

Numeric, in the range [0, 360]. The lower limit of the hue range to be clustered.

hmax

Numeric, in the range [0, 360]. The upper limit of the hue range to be clustered.

cmin

Numeric, in the range [0, 180]. The lower limit of the chroma range to be clustered.

cmax

Numeric, in the range [0, 180]. The upper limit of the chroma range to be clustered.

lmin

Numeric, in the range [0, 100]. The lower limit of the luminance range to be clustered.

lmax

Numeric, in the range [0, 100]. The upper limit of the luminance range to be clustered.

plot

Logical. Should the colour swatches be plotted (using swatch())?

random

Logical. If TRUE, clustering will be determined by the existing RNG state. If FALSE, the seed will be set to 1 for clustering, and on exit, the function will restore the pre-existing RNG state.

Value

A vector of n colours (as hexadecimal strings), representing centers of clusters determined through k-means clustering of the CIE Lab colour space delimited by hmin, hmax, cmin, cmax, lmin and lmax.

Details

Note that iwanthue currently doesn't support hmin greater than hmax (which should be allowed, since hue is circular).

References

See Also

swatch

Examples

Run this code
# NOT RUN {
iwanthue(5)
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
# }

Run the code above in your browser using DataLab