我使用 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)
我可以通过单击“导出”然后“另存为图像”来保存输出。但是,我更喜欢在我的代码中使用一些命令来保存图片。
当我在 rmarkdown 中写报告时,我所有的数字都自动保存在文件夹下graphs。但是,由于 Sankey 图不同,它不会自动保存为图片(.png 等...)。有解决方法吗?(没有通过 RStudio Plots 面板手动保存每个图表?)
我之前看到过这个问题。但是来自的选项rbokeh会产生低质量的图形。我尝试使用第二个选项,但是代码中似乎有错误,因为函数抛出object 'vl' not found.
由于这个问题是三年前的问题,我认为目前可能有更好的解决方案。
我要保存的示例图形:
---
title: "Untitled"
author: "Guilherme"
date: "12/5/2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE,
fig.path = "graph/")
```
```{r}
library(networkD3)
URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/',
'master/JSONdata/energy.json')
energy <- jsonlite::fromJSON(URL)
# Plot
sankeyNetwork(Links = energy$links, Nodes = energy$nodes, Source = 'source',
Target = 'target', Value = 'value', NodeID = 'name',
units = 'TWh', fontSize = 12, nodeWidth = …Run Code Online (Sandbox Code Playgroud)