从 DiagrammeR 导出美人鱼图表
Export mermaid chart from DiagrammeR
我正在尝试通过 R 将甘特图从 mermaid
导出到文件。我对任何文件格式都很满意,但 SVG 或 PNG 更可取。我正在尝试自动执行此操作,因此无法通过 GUI 简单地按导出。
这是我的代码:
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
它生成的图表:
据我所知 mermaid
目前还无法导出为 svg
或其他格式。但是可以通过 Rmd:
将许多 mermaid
对象转储到 HTML
---
title: "Untitled"
author: "Me"
date: "August 1, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document.
```{r echo=FALSE, warning=FALSE, message=FALSE}
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
graph
graph
```
它生成一个包含所有图表的 HTML 文件。不是最佳解决方案,但比尝试手动生成大量图表要好。
已将 mysteRious 的回答标记为正确,因为它确实有帮助。对于将来遇到相同问题的任何人,这是我使用的完整解决方案:
Export.Rmd
---
title: "TestingExport"
author: "me"
date: "August 2, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r echo=FALSE, warning=FALSE, message=FALSE}
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
```
然后用下面的命令把它变成HTML:
Rscript -e "rmarkdown::render('...\Export.Rmd')"
This is a reported issues with the DiagrammeR
package, so you may want to keep an eye on this page for future updates: https://github.com/rich-iannone/DiagrammeR/issues/66
解决方法有两种:
使用 Webshot
另一种保存文件的方法是使用 webshot
包。这使用外部依赖 phantomjs 将 HTML 小部件转换为图像。可以设置如下:
install.packages("webshot")
webshot::install_phantomjs()
使用上面的例子:
library(DiagrammeR)
library(magrittr)
gannt %>%
htmltools::html_print() %>%
webshot::webshot(file = "gannt.pdf")
这会将绘图保存为 PDF,但您可以通过更改文件名来创建图像,即 gannt.png
。
使用 plotly 包
plotly 包有一个有用的导出 HTML 小部件的功能:
plotly::export(gannt, file = "mermaid.png")
我正在尝试通过 R 将甘特图从 mermaid
导出到文件。我对任何文件格式都很满意,但 SVG 或 PNG 更可取。我正在尝试自动执行此操作,因此无法通过 GUI 简单地按导出。
这是我的代码:
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
它生成的图表:
据我所知 mermaid
目前还无法导出为 svg
或其他格式。但是可以通过 Rmd:
mermaid
对象转储到 HTML
---
title: "Untitled"
author: "Me"
date: "August 1, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document.
```{r echo=FALSE, warning=FALSE, message=FALSE}
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
graph
graph
```
它生成一个包含所有图表的 HTML 文件。不是最佳解决方案,但比尝试手动生成大量图表要好。
已将 mysteRious 的回答标记为正确,因为它确实有帮助。对于将来遇到相同问题的任何人,这是我使用的完整解决方案:
Export.Rmd
---
title: "TestingExport"
author: "me"
date: "August 2, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r echo=FALSE, warning=FALSE, message=FALSE}
library(DiagrammeR)
graph <- mermaid("
gantt
dateFormat HH:mm:ss.SSS
title Sample Test Gantt
section A
thing1 : 15:58:51.556, 16:05:23.494
section B
thing2 : 16:02:00.391, 16:20:46.533
section C
thing3 : 16:18:57.352, 16:23:10.700
thing4 : 16:24:11.705, 16:30:30.432
")
graph
```
然后用下面的命令把它变成HTML:
Rscript -e "rmarkdown::render('...\Export.Rmd')"
This is a reported issues with the
DiagrammeR
package, so you may want to keep an eye on this page for future updates: https://github.com/rich-iannone/DiagrammeR/issues/66
解决方法有两种:
使用 Webshot
另一种保存文件的方法是使用 webshot
包。这使用外部依赖 phantomjs 将 HTML 小部件转换为图像。可以设置如下:
install.packages("webshot")
webshot::install_phantomjs()
使用上面的例子:
library(DiagrammeR)
library(magrittr)
gannt %>%
htmltools::html_print() %>%
webshot::webshot(file = "gannt.pdf")
这会将绘图保存为 PDF,但您可以通过更改文件名来创建图像,即 gannt.png
。
使用 plotly 包
plotly 包有一个有用的导出 HTML 小部件的功能:
plotly::export(gannt, file = "mermaid.png")