如何从ggplot2中预定义的颜色集中选择颜色

Ale*_*lex 4 plot r colors ggplot2 color-palette

假设我有一个如下所示的数据集:

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

我想创建一个情节使用ggplot2.我没有手动选择颜色,而是使用预定义的颜色集Paired:

ggplot(dataset, aes(x = x, colour = group)) + 
geom_line(aes(y=y)) + 
scale_colour_brewer(palette="Paired")
Run Code Online (Sandbox Code Playgroud)

我得到的图如下所示:组的数据点ab蓝色的两种颜色,而组的数据点cd绿色的两种阴影.

在此输入图像描述

假设现在,我想只绘制相应组的数据cd,我想用绿色的两个色调.如果我只是做以下事情:

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

该功能将自动选择两种蓝色阴影(见下文),因为它们首先出现在Paired调色板中.

在此输入图像描述

所以我的问题是:当我使用时,如何在预定义的颜色集中选择颜色 ggplot2

ton*_*nov 9

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])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于更具伸缩性的方法,在绘图代码之外全局定义调色板.然后,您将能够将子集化数据动态映射到相应的颜色.