将单色合并到ggplot2主题中

时间:2017-05-10 10:37:33

标签: r ggplot2 themes

我想为ggplot2制作一个主题,定义在使用一种或多种颜色时要使用的特定调色板。当绘图使用多种颜色时,我知道如何做到这一点(在此处描述:Associate a color palette with ggplot2 theme)。但是,我还希望能够在绘图仅使用单一颜色时使用预设颜色。

实施例

我们假设我有这些数据:

library(ggplot2)
set.seed(100)
x <- rnorm(100)
y <- x + rnorm(100, sd=.4)
df <- data.frame(x = x, y = y)

以下主题:

t <- theme_bw()
myColors <- c('red', 'blue', 'black')
s <- scale_color_manual(values = myColors)
myTheme <- list(t, s)

现在我绘制数据:

ggplot(data=df, aes(x=x, y=y)) + geom_point() + myTheme

我得到以下情节:

plot without color

但是,我希望该图使用myColors对象中的第一个元素。所以我想得到以下情节(无需明确定义它geom_point()):

plot with color

问题

是否可以通过在ggplot2中使用主题定义自定义“主”颜色?

1 个答案:

答案 0 :(得分:0)

我不确定这是否适用于您的实际情况,但您可以引入一个虚拟变量来设置颜色如下:

ggplot(data=df, aes(x=x, y=y)) + geom_point(aes(col=factor(1))) + myTheme

要取消图例,请添加+ guides(colour=F)