【发布时间】:2014-12-10 12:23:38
【问题描述】:
当我尝试使用 ggplot2 应用自定义主题时,会出现如下错误:
Error in FUN("text"[[1L]], ...) :
Theme element 'text' has NULL property: family, face, size, hjust, vjust, angle, lineheight
我想我必须在这里错过一些基本的东西(我第一次尝试创建自定义主题)。
主题是基于theme_bw()创建的:
theme_new <- function(base_size = 12, base_family = "Helvetica"){
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
line = element_line(colour="black"),
text = element_text(colour="black"),
axis.title = element_text(size = 14),
axis.text = element_text(colour="black", size=8),
strip.text = element_text(size=12),
legend.key=element_rect(colour=NA, fill =NA),
panel.grid = element_blank(),
panel.border = element_rect(fill = NA, colour = "black", size=1),
panel.background = element_rect(fill = "white", colour = "black"),
strip.background = element_rect(fill = NA)
)
}
那就试试吧:
x
theme_set(theme_new())
qplot(x)
得到上面的错误!
但是:
theme_set(theme_bw())
qplot(x)
工作正常!
我猜this stackoverflow post 中描述的theme_update 与使用theme_set() 更改默认主题不同。
如果我们看一下这个小插图 (http://docs.ggplot2.org/dev/vignettes/themes.html) 中的新主题指南,我的理解是,要么需要指定所有主题参数并使用 complete=TRUE 来说明这一点;或者使用%+replace%operator 向旧主题添加一些东西,比如theme_bw()。
还是不明白!
【问题讨论】: