我希望将ggthemes
库中的主题应用到函数内部的ggplot
。但是,似乎ggthemes
会阻止标签显示。为什么会发生这种情况?
library(tidyverse)
library(ggthemes)
d <- sample_n(diamonds, size = 50)
p <- ggplot(d, aes(carat, price)) + geom_point()
f1 <- function(g, title) {
g %+% theme_few() %+% ggtitle(title)
}
f2 <- function(g, title) {
g %+% ggtitle(title)
}
f1(p, "testing")
f2(p, "testing")
f1
会阻止标题显示。
f2
似乎显示标题。
我最终想在函数内部应用主题。
谢谢。
答案 0 :(得分:3)
我相信使用plot.title
时会移除theme_few()
。您可以将它添加回相同的功能:
f3 <- function(g, title) {
g %+% ggtitle(title) %+% theme_few() %+%
theme(plot.title = element_text(color="black"))
}
现在以下内容应该有效:
f3(p, "testing")
实际上看起来plot.title
似乎没有被移除,真正的问题不仅仅是影响标题。看起来ggthemes
继承了包数据ggthemes_data
中的所有颜色。但是,他们最近重命名了ggthemes_data$few
的颜色(从black
到Black
)但无法更新功能,导致theme_few()
中的所有颜色元素都被读取现在为NA
,从而消除了主题中的元素。
因此,对于标题,theme_few
在呼叫ggthemes_data$few$dark["black"]
时呼吁ggthemes_data$few$dark["Black"]
。看起来这个问题会影响这个特定函数中的所有颜色元素,所以我暂时不会使用这个版本的ggthemes
。我很惊讶这种疏忽没有被抓住!