【问题标题】:RStudio cannot find fonts to be used in plottingRStudio 找不到要用于绘图的字体
【发布时间】:2018-02-16 16:40:06
【问题描述】:

我正在尝试在 RStudio 中绘制一个简单的密度图。情节本身显示出来,但没有文字和此错误消息:

50: In doTryCatch(return(expr), name, parentenv, handler) :
no font could be found for family "Arial"

我试过用谷歌搜索答案,似乎有几个人遇到了同样的问题,但没有找到任何解决方案。

我在 MacBook Pro(High Sierra,10.13.3)上运行 RStudio(版本 1.0.153)

这是我正在运行的完整代码:

lim <- vector()
xn <- vector()
for (j in 1:1000) {
  ek <- rexp(10000,1)
  i <- 1:10000
  xn <- 1/sqrt(i) * sum(ek) - sqrt(i)
  lim[j] <- xn[10000]
}

plot(density(lim))

我已经尝试过更改字体(Helvetica 也不起作用)并使用dev.off() 重置图形。

【问题讨论】:

  • 我无法重现此错误,也不确定是什么原因造成的,但您可以尝试使用 extrafont 软件包:按照 instructions here 安装软件包并导入和注册字体以用于 R。
  • 我安装了这个包。 install.packages 给出了与我之前得到的相同的警告信息。 font_import() 也是如此
  • 不管怎样,当我尝试编织情节(使用 RMarkdown)时,一切正常。
  • 如果您重新启动 R 会话并在 R 脚本中尝试绘图会发生什么?
  • 重新启动会话不会改变任何事情。我也尝试在 R(而不是 RStudio)中这样做,但这似乎也没有什么区别。

标签: r rstudio


【解决方案1】:

我最近使用High Sierra 10.13.5 RStudio 1.1.453 and R 3.5.0 遇到了这个问题。我的绘图全部显示为没有文本,但在运行先前操作系统的 Mac 上使用相同版本的 R 和 RStudio 运行良好。命令 warnings() 显示带有以下文本的错误消息:

找不到家族“Arial”的字体

我发现 High Sierra 有时会禁用字体,即使它们位于 /Library/Fonts 中。操作系统中有一个名为 Font Book.app 的新应用程序。一些细节是here

查看 Font Book 应用程序,我发现 Arial 确实是灰显并关闭的。我从弹出菜单中选择了enable,必须重新启动计算机才能在 RStudio 和 R 中处理绘图。重新启动软件是不够的。

【讨论】:

    【解决方案2】:

    只是想添加评论以防其他用户找到此帮助页面。我遇到了与 OP 非常相似的问题 - Mac OS Mojave 10.14.5Rstudio 1.1.456R 3.6.0

    关于R can not find fonts to be used in plotting的一些附加信息

    所有基本 R、lattice 和 ggplot 都无法获取字体系列 Arial,所以我同意这是一个非 R 特定的系统问题。我试过了:

    1. 转到字体册,Arial 显示为灰色、反应性、重新启动 - 没有交易
    2. 在 Font Book 中重新安装所有标准字体,重新启动 - 没关系
    3. 可以调用其他字体系列(例如“Times”),但不是持久的解决方案。
    4. extrafont 包和 import_font()font_add() 不起作用并且没有解决根本原因

    对我来说:诀窍是计算机 (/Library/Fonts) 和每个用户 (/Users/userid/Library/Fonts) 都有单独的字体书库 - 确保 Arial 在这两者中都处于活动状态,我的用户字体库由于某种原因是空的(尽管恢复了标准字体)-从计算机字体库复制字体并解决了问题。

    【讨论】:

      【解决方案3】:

      升级到 MacOS Catalina Beta 10.15 (19A546d) 后,我遇到了与 OP 类似的问题

      在升级 MacOS 之前,我正在运行 R 3.6.1、RStudio 1.2.1335,没有任何问题。

      我在尝试使用 ggplot 绘图时收到了几条相关的错误消息。

      1. grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : 多边形边未找到

      2. 找不到家族“Arial”的字体

      为了解决这个问题,我通过以下步骤重新安装了系统默认字体:

      1. 打开字体册应用程序
      2. 文件 > 恢复标准字体...
      3. 重启电脑

      【讨论】:

        【解决方案4】:

        同样在带有 RStudio 1.1.463, R 3.5.1 的 Mac 上。通过为我的操作系统安装更新(更新为Mojave 10.14.3)并重新启动我的计算机,问题得到了解决。

        【讨论】:

          【解决方案5】:

          布伦特的答案已经很清楚了。以防万一,如果您的用户路径中没有用户标识文件夹,并且您的用户标识无权访问 Arial 字体,您可能需要尝试:

          图书馆(显示文本) font_add(family = "Arial", regular = "Arial.ttf") ## 这里是要添加的字体的路径。 显示文本.auto()

          【讨论】:

          • 请考虑添加一个解释,因为这个问题已经被多次回答并且近两年了,请添加使您的答案与众不同的原因。谢谢。
          猜你喜欢
          • 2019-09-19
          • 1970-01-01
          • 1970-01-01
          • 2016-10-04
          • 2017-05-10
          • 1970-01-01
          • 1970-01-01
          • 2021-06-15
          相关资源
          最近更新 更多