Я написал пакет для R под названием qualpalr , который разработан специально для этой цели. Я рекомендую вам взглянуть на виньетка , чтобы узнать, как это работает, но я постараюсь обобщить основные моменты.
qualpalr берет спецификацию цветов в цветовом пространстве HSL (которое было описано ранее в этой теме), проецирует его в цветовое пространство DIN99d (которое является перцепционно однородным) и находит n
, который максимизировать минимальное расстояние между ними.
# Create a palette of 4 colors of hues from 0 to 360, saturations between
# 0.1 and 0.5, and lightness from 0.6 to 0.85
pal <- qualpal(n = 4, list(h = c(0, 360), s = c(0.1, 0.5), l = c(0.6, 0.85)))
# Look at the colors in hex format
pal$hex
#> [1] "#6F75CE" "#CC6B76" "#CAC16A" "#76D0D0"
# Create a palette using one of the predefined color subspaces
pal2 <- qualpal(n = 4, colorspace = "pretty")
# Distance matrix of the DIN99d color differences
pal2$de_DIN99d
#> #69A3CC #6ECC6E #CA6BC4
#> 6ECC6E 22
#> CA6BC4 21 30
#> CD976B 24 21 21
plot(pal2)