创建自定义的ggplot2函数,结合主题和颜色。

7

我经常在ggplot2图表中使用ggthemes软件包中的theme_hc()主题,结合scale_colour_pander()或scale_fill_pander()。现在我想创建一个名为myTheme的自定义函数,将这三个函数合并为一个。

我尝试了以下方法:

myTheme <- function(){
  theme_hc() + scale_colour_pander() + scale_fill_pander()
}
data <- data.frame(x=1:2,y=3:4)
ggplot(data, aes(x=x, y=y)) + geom_point() + myTheme()

但是显然R首先在函数内部进行评估并给出错误:'Error: Don't know how to add scale_colour_pander() to a theme object'。

然后我尝试了:

myTheme <- function(){
  ggplot() + theme_hc() + scale_colour_pander() + scale_fill_pander()
}
data <- data.frame(x=1:2,y=3:4)
ggplot(data, aes(x=x, y=y)) + geom_point() + myTheme()

返回的结果是:“错误:不知道如何将o添加到图表中”

是否有一种方法可以实现所需的效果,还是应该继续组合单个命令?


5
尝试运行以下代码:list(theme_hc(), scale_colour_pander(), scale_fill_pander()) - baptiste
这个可行!你能把它添加为答案吗? - takje
1
takje,我在SO(评论)上还比较新,但我认为您的请求需要包括@baptiste才能让他收到消息(即无需偶然检查)。 - steveb
1个回答

8
标准技术是将这些元素包装在一个列表中。
p + list( theme_hc() , scale_colour_pander() , scale_fill_pander())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接