Как сопоставить выбранные шестнадцатеричные коды с именами цветов [дубликаты]

Я хотел бы выбрать разные цвета для уровней, доступных в факторизованном столбце.

levels(iris$Species)
# [1] "setosa"     "versicolor" "virginica"

Из этого вопроса я обнаружил, что выбор отдельных цветов с помощью функции brewer.pal оптимален и/или прост. Я определил решение как

data.frame(values=levels(iris$Species),
           colhex=brewer.pal(3,'Accent'))

#       values  colhex
# 1     setosa #7FC97F
# 2 versicolor #BEAED4
# 3  virginica #FDC086

Однако я хотел бы сопоставить эти шестнадцатеричные коды с именами цветов как (ожидаемый результат):

#       values  colhex colnames
# 1     setosa #7FC97F color1
# 2 versicolor #BEAED4 color2
# 3  virginica #FDC086 color3

Как добиться этого сопоставления?

В качестве альтернативы, есть ли какой-либо пакет, который предоставляет имена цветов с шестнадцатеричными кодами для n (скажем, n=85+) различных значений.

Есть еще один способ определить присутствующие цвета, используя:

r_colors <- cbind(colors(), t(col2rgb(colors())))

Я чувствую, что при таком подходе сложно идентифицировать n различных возможных цветов.


person Prradep    schedule 13.07.2017    source источник
comment
@Henrik Сделав домашнее задание, я опубликовал этот вопрос, чтобы найти лучшее возможное решение. color.names(rainbow(4)) в ссылке дает только 2 из 4 названий цветов. Поскольку очень важно получить почти 100% названий цветов, я запросил любые возможные элегантные решения.   -  person Prradep    schedule 13.07.2017
comment
Для обсуждения наилучшего возможного решения: stackoverflow.com/a/45090183/4836511   -  person Prradep    schedule 13.07.2017