У меня есть следующий график, основанный на этом наборе данных
Моя цель - сопоставить цвета на каждой полосе с названием цвета "TAG".
Я пытался использовать палитру
palette <- RColorBrewer::brewer.pal(length(unique(tidied_pca$Tag)),name = 'Set1')
но я получаю эту ошибку
Warning message:
In RColorBrewer::brewer.pal(length(unique(tidied_pca$Tag)), name = "Set1") :
n too large, allowed maximum for palette Set1 is 9
Returning the palette you asked for with that many colors
Исходный код для отображения графика находится здесь:
tidied_pca %>%
filter(PC == "PC2") %>%
top_n(40, abs(Contribution)) %>%
mutate(Tag = reorder(Tag, Contribution)) %>%
ggplot(aes(Tag, Contribution, fill = Tag)) +
geom_col(show.legend = FALSE, alpha = 0.8) +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
axis.ticks.x = element_blank()) +
labs(x = "Bottle Color percentages",
y = "Relative importance in principle component",
title = "What color accounts for most variation PCA2")
Не работает, уже пробовал. Если работает с вами, не могли бы вы опубликовать изображение графика с правильными цветами?
Чтобы просто использовать цвета в столбце тегов, добавьте
+ scale_fill_identity()
Но для фактического сообщения об ошибке нет цветовой палитры пивовара с таким количеством различных цветов. Для Set1
максимальное количество цветов, которые вы получаете, равно 9. Вы можете интерполировать эти значения, чтобы получить больше цветов, но тогда вы, вероятно, потеряете приятное свойство иметь легко различимые цвета. Вы можете сделать это с помощью базовой функции R colorRampPalette
.
palette <- colorRampPalette(RColorBrewer::brewer.pal(9,name = 'Set1'))(length(unique(tidied_pca$Tag)))
У меня это не работает, не могли бы вы опубликовать изображение графика с правильными цветами?
Мне нужно больше кофе!! Это действительно сработало, большое спасибо!!
Попробуйте поместить все желаемые цвета (думаю, это будут те, что по оси X) в один вектор (например,
vec <- c("blue","red","green")
, а затем передать этот вектор в качестве аргументаfill
вggplot