4

我正在尝试绘制一些数据,我的代码如下所示:

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')

切分音是一种独特的字体,见这里。但是我的可视化字体看起来像这样(这是一个测试图,忽略它的整体劣势):

在此处输入图像描述

但是如果我加载像 Times New Roman 这样的系统主题,它就可以正常工作。为什么我的谷歌字体没有使用 showtext 加载?

编辑

Jrakru 的答案有效,但请记住,您必须运行整个代码块:新字体将出现在保存的 png 文件中,但不会出现在预览窗口中。这并不是对答案的轻描淡写,而是针对像我这样希望字体显示在 RStudio 控制台中并因此省略ggsavepng部分代码的其他人。

4

2 回答 2

5

showtext提及的 GitHub

此示例应该适用于大多数图形设备,包括 pdf()、png()、postscript() 和屏幕设备,例如 Windows 上的 windows() 和 Linux 上的 x11()。

如果您真的很难在行之间阅读,那意味着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用户。

于 2018-11-09T22:18:38.453 回答
3

根据同一文件:https ://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

在它的最底部,您可以阅读以下内容:

与 RStudio 的兼容性

从 0.9 版开始,showtext 可以很好地与 RStudio 图形设备 (RStudioGD) 配合使用。只需在 RStudio 会话中调用 showtext_auto() 即可正确显示绘图。

它在 RStudio 1.3.959 中对我有用

于 2020-12-07T09:55:54.293 回答