【问题标题】:Error in dyn.load(file, DLLpath = DLLpath, ...) when using ggsave使用 ggsave 时 dyn.load(file, DLLpath = DLLpath, ...) 出错
【发布时间】:2018-05-20 20:37:25
【问题描述】:

我在运行以下代码时收到此错误,但不知道如何修复它。我安装了svglite,但是当我运行library(svglite) 时,我得到了同样的错误:

dyn.load(file, DLLpath = DLLpath, ...) 中的错误: 无法加载共享对象'/Library/Frameworks/R.framework/Versions/3.5/Resources/library/gdtools/libs/gdtools.so': dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/gdtools/libs/gdtools.so, 6):库未加载:/opt/X11/lib/libcairo.2.dylib 引用自:/Library/Frameworks/R.framework/Versions/3.5/Resources/library/gdtools/libs/gdtools.so 原因:找不到图片

x = c(1,2,3,4)
y = c(1,2,3,4)

p <- ggplot(data = data.frame(x=x,y=y), aes(x = x, y = y))  + 
geom_line() + 


ggsave(filename = "ROC_plot_6x4.svg", plot = p, device = "svg", 
   width = 6, height = 4, units = "in")

library(svglite)

【问题讨论】:

  • 你看过例如this question/answers?
  • cairo 库是gdtools 包的系统要求。你有没有安装它,例如通过自制软件?
  • 感谢您的回复。我真的对自制软件一无所知。我只是尝试安装它,当我按照指示在终端中键入 /usr/bin/ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/install) 时什么也没发生。我在 Mac OS10.12.6 上,顺便说一句。看来我在我的 R 3.5 版本中没有该库。我查看了 Roman 左侧的链接,但没有发现它有帮助。
  • 从头开始,我实际上再次访问了 Roman 的链接,并设法将大约 10 个文件夹手动放入适当的库中,问题就解决了。对不起,罗曼,你是对的。

标签: r ggplot2


【解决方案1】:

快速修复:安装 XQuartz

我在尝试使用库 ggiraph 时遇到了这个问题,该库具有 gdtools 依赖项。 gdtoolssystemfonts(其依赖项之一)的 Mac OS X 二进制文件具有指向 X11 的硬编码链接,这对应于默认的 XQuartz 安装。因此,如果您没有这些库和/或只是希望能够轻松下载二进制文件,那么install XQuartz

FWIW,CRAN's download page for R (OS X) 确实提到某些软件包需要 X11:

注意:使用 X11(包括 tcltk)需要安装 XQuartz,因为它不再是 OS X 的一部分。在将 macOS 升级到新的主要版本时,请务必重新安装 XQuartz版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2018-12-19
    相关资源
    最近更新 更多