【发布时间】:2019-12-20 10:31:38
【问题描述】:
根据this 帖子中的建议,我正在尝试将衬线字体(或字体“系列”)安装到 R 中,以便可以将 ggplots 保存为 .eps 文件。虽然提供的建议有效,但我想尝试解决该问题以供将来使用。
这是生成问题的代码。
library(bayesplot)
df <- data.frame(xVar = rnorm(1e4,0,1), yVar = rnorm(1e4,2,1), zVar = rnorm(1e4,4,1))
t <- bayesplot::mcmc_trace(df)
t
现在当我去保存图时,我得到了这个错误
ggplot2::ggsave(filename = "tPlot.eps",
plot = t,
device = "eps",
dpi = 1200,
width = 15,
height = 10,
units = "cm")
哪个会引发错误
Error in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)) :
family 'serif' not included in postscript() device
在上一篇文章中,回答者建议我下载extrafont 包。
我跑了
View(fonttable())
但似乎没有安装衬线字体。
然后我尝试了
font_addpackage(pkg = "serif")
但我得到了错误
Error in font_addpackage(pkg = "serif") :
Unknown font package type: not type1 or ttf.
有谁知道如何安装衬线字体以便 R 可以识别/使用它?
【问题讨论】:
-
Serif 不是字体,它是一种字体可能有或没有的功能。
-
@Rui Barradas 你是对的,但我复制到帖子中的错误消息似乎表明 R 认为它是一个“家庭”,无论这意味着什么。你有什么安装技巧吗?
-
我不会像你一样解释错误信息。我认为这意味着
"serif"不被识别为字体类型。但是extrafont包中有 458 种衬线字体,尝试fnt <- fonts();i <- grep("serif", fnt, ignore.case = TRUE);fnt[i]有一个它们名称的向量。 -
谢谢@Rui Barradas。我使用了您的代码并得到了
[1] "Microsoft Sans Serif" "MS Reference Sans Serif",我收集到的不是衬线字体。虽然 Times New Roman 是一种衬线字体,当我这样做时View(fonttable())Times New Roman 就在那里,但我仍然收到该错误消息。View(fonttable())也只返回 81 个字体名称。我对加载、嵌入和安装字体之间的区别感到非常困惑。如何安装您提到的 458 字体以便 R 可以识别它们? -
你读过包裹documentation吗?