This ensures all colors are distinct by packing the (visible part) of the CIELAB color space with the needed number of spheres, and using their centers to generate the colors.

distinct_colors(
  n,
  minimal_saturation = 33,
  minimal_lightness = 20,
  maximal_lightness = 80
)

Arguments

n

The requested (positive) number of colors.

minimal_saturation

Exclude colors whose saturation (hypot(a, b) in CIELAB color space) is less than this value (by default, 33).

minimal_lightness

Exclude colors whose lightnes (l in CIELAB color space) is less than this value (by default, 20).

maximal_lightness

Exclude colors whose lightnes (l in CIELAB color space) is more than this value (by default, 80).

Value

A list with two elements, name containing the color names and lab containing a matrix with a row per color and three columns containing the l, a and b coordinates of each color.

Examples

chameleon::distinct_colors(8)
#> $lab #> l a b #> [1,] 45.31069 16.83526 -53.526963 #> [2,] 45.31069 59.32081 -53.526963 #> [3,] 45.31069 38.07803 -16.733398 #> [4,] 45.31069 59.32081 20.060166 #> [5,] 80.00000 -68.13584 44.589209 #> [6,] 80.00000 -25.65029 -28.997920 #> [7,] 80.00000 -46.89306 7.795645 #> [8,] 80.00000 -25.65029 44.589209 #> #> $name #> [1] "#3E67C5" "#9C3FC6" "#9B5188" "#C6314D" "#30E36E" "#4DD6FB" "#51DDB6" #> [8] "#B3D270" #>