# some brownish colors with a wild outlier
m <- c('10YR 3/3', '10YR 4/4', '10YR 4/4', '5GY 6/8')
# useful when there may be a lot of duplicates
# error when there is not a single, most-frequent color
colorVariation(m, method = 'frequency')
# statistical "centroid" of colors, not robust to outliers
# result may not match any color in `m`
colorVariation(m, method = 'centroid')
# deviation from a known reference
colorVariation(m, method = 'reference', ref = '10YR 2/1')
# L1-median (requires Gmedian package) like 'centroid'
# more robust to outliers
# result will usually be very close to a color in `m`
if(requireNamespace('Gmedian')) {
colorVariation(m, method = 'L1')
}
# compare methods using a range of colors on a
# single hue page
x <- expand.grid(
hue = '10YR',
value = 2:7,
chroma = 2:7
)
x$m <- sprintf("%s %s/%s", x$hue, x$value, x$chroma)
colorChart(x$m)
(v <- colorVariation(x$m, method = 'centroid'))
contrastChart(attr(v, 'centroid'), hues = x$hue[1], thresh = v)
if(requireNamespace('Gmedian')) {
(v <- colorVariation(x$m, method = 'L1'))
contrastChart(attr(v, 'L1'), hues = x$hue[1], thresh = v)
}
# attempt to simulate colors from a group centroid
if (FALSE) {
v <- colorVariation(x$m, method = 'centroid')
s <- simulateColor(
method = 'dE00',
n = 200,
parameters = list(m = attr(v, 'centroid'), thresh = v * 1.96, hues = x$hue[1])
)
colorChart(s[[1]])
}
Run the code above in your browser using DataLab