Если вы не намереваетесь передать дополнительные спецификации темы в my_theme
, я не думаю, что действительно нужно определять ее как функцию. Список будет хорошо.
Следующее должно работать для вашей цели:
my_theme2 <- list(
theme_minimal() +
theme(title = element_text(color = "gray25"),
plot.subtitle = element_text(size=12),
plot.title = element_text(size=12),
plot.caption = element_text(color= "gray30")) ,
scale_fill_manual(values = x)
)
mpg %>%
ggplot() +
geom_bar(aes(x = fct_infreq(class), fill=factor(cyl)), color="black", width = 0.5) +
labs(title= "CK farver") +
my_theme2 +
theme(axis.text.x = element_text(angle = -90, hjust = 0))
(График вывода не показан, поскольку он идентичен указанному в вопросе)
edit с указанным выше вариантом функции:
my_theme3 <- function(...){
list(
theme_minimal() +
theme(title = element_text(color = "gray25"),
plot.subtitle = element_text(size=12),
plot.title = element_text(size=12),
plot.caption = element_text(color= "gray30"),
...) ,
scale_fill_manual(values = x)
)
}
# same plot as before
mpg %>%
ggplot() +
geom_bar(aes(x = fct_infreq(class), fill=factor(cyl)), color="black", width = 0.5) +
labs(title= "CK farver") +
my_theme3() +
theme(axis.text.x = element_text(angle = -90, hjust = 0))
# if you want to add other tweaks to the theme, e.g. red labels, different legend position
mpg %>%
ggplot() +
geom_bar(aes(x = fct_infreq(class), fill=factor(cyl)), color="black", width = 0.5) +
labs(title= "CK farver") +
my_theme3(axis.text = element_text(color = "red"),
legend.position = "bottom") +
theme(axis.text.x = element_text(angle = -90, hjust = 0))