如何在R中将html输出捕获为png

Len*_*aná 7 png r networkd3 htmlwidgets

我使用 R 中由 networkD3 包创建的交互式输出。我知道如何将输出保存为 html 页面,但我还需要将图表的“静态”版本保存为 .png 文件。

代码如下所示:

# Load package
library(networkD3)

# Create fake data
src <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
networkData <- data.frame(src, target)

# Plot
simpleNetwork(networkData)
Run Code Online (Sandbox Code Playgroud)

我可以通过单击“导出”然后“另存为图像”来保存输出。但是,我更喜欢在我的代码中使用一些命令来保存图片。

chi*_*n12 12

只是对可能的解决方案的更新。有一个名为webshot(W. Chang 等人)的包可以执行此渲染并截取 html 页面的屏幕截图。

例如用法:

webshot::webshot("file.html")
Run Code Online (Sandbox Code Playgroud)

要获取 html 文件,您可能需要查看htmlwidgets::saveWidgetR. Vaidyanathan 等人。


一个完全可重现的示例(保存simpleNetwork.png在您当前的工作目录中)

library(networkD3)

src <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
networkData <- data.frame(src, target)

sn <- simpleNetwork(networkData)
saveNetwork(sn, "sn.html")

library(webshot)
webshot("sn.html", "simpleNetwork.png")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明