При попытке применить пользовательские сделал тему, используя ggplot2
это получаю сообщение об ошибке, как:Как сделать пользовательский по умолчанию тему с ggplot2 в R
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)
)
}
Тогда попробуйте это:
х < - RNorm (10)
theme_set (theme_new())
qplot (х)
Получите вышеуказанную ошибку!
Однако:
theme_set (theme_bw())
qplot (х)
отлично работает!
Я думаю, что theme_update, описанный в this stackoverflow post, не совпадает с изменением темы по умолчанию с theme_set(). Если мы посмотрим на новые темы в этой виньетке (http://docs.ggplot2.org/dev/vignettes/themes.html), я понимаю, что нужно просто указать все параметры темы и использовать complete=TRUE
, чтобы сказать это; ИЛИ используйте оператор %+replace%
, чтобы добавить что-то к старой теме, например theme_bw(). Не поймите это!
со всеми этими предупреждениями это не может быть решением. Во всяком случае, он не работает, когда вы делаете другой сюжет. – user3375672
Мне любопытно узнать, какой конкретный сюжет вы не можете произвести с ним. Взгляните на отредактированную версию ответа. – Khashaa
Да, это помогло удалить строки с «базовыми» настройками (хотя не совсем понятно, почему это так), и я думаю, что все предупреждения связаны с отсутствующим шрифтом Windows, который можно легко устранить. – user3375672