我经常在ggplot2图中使用theme_hc()主题(来自包ggthemes),结合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首先在函数内部对此进行求值并给出错误:'错误:不知道如何将scale_colour_pander()添加到主题对象'.
然后我试了一下
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添加到图中'
有没有办法达到预期的效果,还是应该继续组合各个命令?
标准技术是将这些元素包装在列表中,
p + list( theme_hc() , scale_colour_pander() , scale_fill_pander())