У меня есть R dataframe (df), который я строю в виде гистограммы в ggplot2, и раскраска основана на столбце в dataframe (df$type
). Прямо сейчас я использую шаблон окраски по умолчанию (scale_fill_brewer
) для назначения цветов.
Как я могу назначить черный цвет одному значению (df$type == -1
) и использовать scale_fill_brewer для назначения остальных цветов? (все другие df$types
находятся в пределах набора целых чисел от 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