Шрифты не загружаются в showtext font_add_google

Я пытаюсь отобразить некоторые данные, и мой код выглядит так:

library('ggplot2')
library('tidyr')
library('ggthemes')
library('showtext')

font_add_google('Syncopate', 'Syncopate')
showtext_auto()

ggplot(aes(x = X, group=1), data = glassdoor)+
  geom_line(aes(y = col1, color = 'red'))+
  geom_line(aes(y = col2, color = 'blue'))+
  geom_line(aes(y = col3, color = 'magenta'))+
  geom_line(aes(y = col4, color = 'yellow'))+
  theme(text = element_text(family = "Syncopate"))+
  ggtitle('A Long Test Title')

Syncopate - это отличительный шрифт, который можно увидеть здесь. Но шрифт моей визуализации выглядит так (это тестовый график, игнорируйте его общую слабость):

Но если я загружаю системную тему, такую ​​как Times New Roman, она работает нормально. Почему мои шрифты Google не загружаются с использованием showtext?

редактировать

Ответ Jrakru работает, но имейте в виду, что вы должны запустить весь этот блок кода: новые шрифты появятся в сохраненном файле png, но не в окне предварительного просмотра. Это не написано как незначительное против ответа, а скорее для других, таких как я, которые ожидают, что шрифты появятся в консоли RStudio и поэтому опускают ggsave а также png части кода.

2 ответа

Решение

GitHub для showtext упоминает

Этот пример должен работать на большинстве графических устройств, включая pdf(), png(), postscript() и экранные устройства, такие как windows() в Windows и x11() в Linux.

Если вы действительно очень много читаете между строк, это означает, что RStudioGD графическое устройство не поддерживается. Я не видел, что первые несколько раз я читал это. Я знаю только потому, что vignette немного более явно.

ПРИМЕЧАНИЕ. В настоящее время showtext не работает со встроенным графическим устройством RStudio, поэтому, чтобы попробовать приведенный ниже код, рекомендуется запустить код в исходной консоли R или использовать другие графические устройства, такие как x11() и windows().

см. https://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

Обладая вышеуказанными знаниями, мы можем сделать это:

library('tidyr')
library('ggthemes')
library('showtext')

font_add_google("Schoolbell", "bell")
showtext_auto()

library('ggplot2')

df<- data.frame(x=1:10, y=101:110)

options("device" = "windows")

win.graph(10,10,12)

ggplot(data = df) +
  geom_line(aes(x,y))+
  theme(text = element_text(family = "bell"))+
  ggtitle('A Long Test Title')


ggsave("showtext-example.png", width = 7, height = 4, dpi = 96)

options("device" = "RStudioGD")

И вуаля! введите описание изображения здесь

Ps: я предполагал, что вы windows пользователь.

согласно тому же документу: https://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

А в самом низу можно прочитать вот это:

Совместимость с RStudio

Начиная с версии 0.9, showtext может хорошо работать с графическим устройством RStudio (RStudioGD). Просто вызовите showtext_auto() в сеансе RStudio, и тогда графики будут отображаться правильно.

у меня это работало в RStudio 1.3.959

Другие вопросы по тегам