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

时间:2014-01-30 23:43:20

标签: r colors plot 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))

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

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

我得到的图如下所示:组ab的数据点有两种蓝色,而组c和{{1}的数据点两种颜色的绿色。

enter image description here

现在假设,我只想绘制与组dc对应的数据,我想使用两种绿色阴影。如果我只是执行以下操作:

d

该函数将自动选择两种蓝色阴影(见下文),因为它们位于ggplot(dataset[dataset$group %in% c("c", "d"),], aes(x = x, colour = group)) + geom_line(aes(y=y)) + scale_colour_brewer(palette="Paired") 调色板集中的第一位。

enter image description here

所以我的问题是:当我使用Paired

时,如何在预定义的颜色集中选择颜色?

1 个答案:

答案 0 :(得分: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])

enter image description here

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