使用`svglite`图形设备时如何成功使用{pkgdown}

Ind*_*til 6 r ggplot2 r-markdown pkgdown svglite

为了解决我的 R 包中的问题,我希望尝试使用svglite图形设备来渲染ggplot绘图:

knitr::opts_chunk$set(dev = "svglite")
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做,{pkgdown} 工作流程将失败(失败日志)并显示警告消息:

1: 'mode(bg)' differs between new and previous
     ==> NOT changing 'bg' 
2: 'mode(bg)' differs between new and previous
     ==> NOT changing 'bg' 
Run Code Online (Sandbox Code Playgroud)

如果我理解正确的话,这些警告消息来自par(),它抱怨无法更改背景颜色 ( bg)。但我没有明确调用par(),也没有更改相关图的背景颜色。

所以我想知道为什么我会收到此错误以及如何解决它?

Dav*_*hel 0

我认为您有字体不匹配的问题。

下载必要的字体文件,确保在源包中并在包“systemfonts”和函数中注册必要的它们systemfonts::register_font()。对于包“svglite”、“ragg”(和“ggiraph”)来说,这是正确的做法。

看起来您的计算机上有“希腊”变体,但 GA 远程计算机上没有。

在您的包中,我将使用 gdtools 添加一个新的“建议”条目,它可以帮助您下​​载字体并无缝注册(免责声明,我是作者,但我真的认为这使事情变得更容易)。在小插图中,在使用“ragg”或“svglite”进行任何图形生成之前,添加以下代码:

gdtools::register_gfont(family = "Open Sans", subset = c("latin", "latin-ext", "greek"))
Run Code Online (Sandbox Code Playgroud)