我正在尝试为ggplot
准备一个自定义主题,以避免一直复制粘贴主题。但我遇到了一个问题,无法将scale
函数添加到theme
对象中。有人知道应该如何解决吗?
library(ggthemes)
theme_RTCGA <- function(base_size = 11, base_family = "", ...){
theme_pander(gm = TRUE, gM = TRUE, ...) %+replace%
theme(panel.grid = element_line(),
panel.grid.major = element_line(colour = "grey90", size = 0.2),
panel.grid.minor = element_line(colour = "grey98", size = 0.5),
legend.position = "top") +
scale_colour_pander() +
scale_fill_pander()
}
library(ggplot2)
# plot
df <- data.frame(gp = factor(rep(letters[1:3], each = 10)),
y = rnorm(30))
ds <- plyr::ddply(df, "gp", plyr::summarise, mean = mean(y), sd = sd(y))
ggplot(df, aes(x = gp, y = y)) +
geom_point() +
geom_point(data = ds, aes(y = mean),
colour = 'red', size = 3) + theme_RTCGA()
Error: Don't know how to add scale_colour_pander() to a theme object
ggplot
调用中,然后跟随..+..theme_RTCGA()
,会发生什么? - mtoto。 然后使用
(<plot>) %>% theme_RTCGA()` 调用它。 - Pekkaqplot(1,1) + list(theme_bw(), scale_colour_brewer())
- baptiste+ theme_RTCGA()
的内容 :) 这就是我提问的原因。 - Marcin+
约定。 - Marcintheme_RTCGA <- function(base_size = 11, base_family = "", ...){list(theme_bw(...), scale_colour_pander())}
- Marcin