【问题标题】:How to select colors from a predefined color set in ggplot2如何从 ggplot2 中的预定义颜色集中选择颜色
【发布时间】:2014-02-23 13:05:50
【问题描述】:

假设我有如下数据集:

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 组的数据点为两种蓝色,而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")

该函数将自动选择两种蓝色阴影(见下文),因为它们在Paired 调色板集中排在首位。

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

【问题讨论】:

  • 您使用 scale_*_manual 进行此操作,但传入来自 brewer_pal 的特定颜色子集。
  • 不是完全重复的,但这应该给你的想法:stackoverflow.com/a/8751004/324364

标签: r colors plot ggplot2 color-palette


【解决方案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])

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

【讨论】:

    猜你喜欢
    • 2013-07-18
    • 2015-10-30
    • 1970-01-01
    • 2018-07-20
    • 2017-12-04
    • 2013-08-26
    • 2015-01-23
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多