Как выбрать цвета из предопределенного набора цветов в ggplot2

Предположим, у меня есть набор данных, подобный следующему:

set.seed(1)
dataset <- data.frame(x = sort(rnorm(100)), 
                      y = sort(rlnorm(100))+1:4, 
                      group=rep(letters[1:4], 25))

Я хотел бы создать сюжет, используя ggplot2, Вместо того, чтобы выбирать цвета вручную, я использую предопределенный набор цветов Paired:

ggplot(dataset, aes(x = x, colour = group)) + 
geom_line(aes(y=y)) + 
scale_colour_brewer(palette="Paired")

Я получаю график, как показано ниже: точки данных для групп a а также b в двух оттенках синего, в то время как точки данных для групп c а также d в двух оттенках зеленого.

Предположим теперь, что я хотел бы только построить данные, соответствующие группам c а также d, и я хотел бы использовать два оттенка зеленого. Если я просто сделаю следующее:

ggplot(dataset[dataset$group %in% c("c", "d"),], aes(x = x, colour = group)) + 
geom_line(aes(y=y)) + 
scale_colour_brewer(palette="Paired")

функция автоматически выберет два оттенка синего (см. ниже), так как они Paired набор палитр.

Поэтому мой вопрос: как я могу выбрать цвета в предопределенном наборе цветов, когда я использую ggplot2

1 ответ

Решение
require(RColorBrewer)
ggplot(dataset[dataset$group %in% c("c", "d"),], aes(x = x, colour = group)) + 
  geom_line(aes(y=y)) + 
  scale_colour_manual(values = brewer.pal(4, "Paired")[3:4])

Для более масштабируемого подхода определите палитру глобально, вне кода построения. После этого вы сможете динамически отображать подмножество данных в соответствующий цвет.

Другие вопросы по тегам