У меня есть фрейм данных R (df), который я рисую в виде гистограммы в ggplot2, и раскраска на основе столбца в фрейме данных ( df $ type
). Прямо сейчас я использую шаблон окраски по умолчанию ( scale_fill_brewer
) для назначения цветов.
Как я могу назначить черный цвет одному значению ( df $ type == -1
) и использовать scale_fill_brewer для назначения остальных цветов? (все остальные типы df $
представляют собой набор целых чисел от 1 до X, где X - количество уникальных значений)
До сих пор мне удавалось делать это вручную, выясняя набор цветов scale_fill_brewer
использует для N различных элементов, затем предварительно определяет черный цвет и передает его в scale_fill_manual
.
rhg_cols1<- c("#000000","#F8766D","#7CAE00","#00BFC4","#C77CFF" )
ggplot(y=values,data=df, aes(x=name, fill=factor(type))) +
geom_bar()+ scale_fill_manual(values = rhg_cols1)
Проблема в том, что мне нужно решение, которое работает без ручного назначения цветов с помощью шестнадцатеричного калькулятора цветов для определения шестнадцатеричных значений scale_fill_brewer
.
что-то вроде:
ggplot(y=values,data=df, aes(x=name, fill=factor(type))) +
geom_bar()+ scale_fill_brewer(value(-1, "black")
Спасибо!
РЕДАКТИРОВАТЬ: Решение должно работать для более чем 30 цветов и работать для "Set2" ColorBrewer