在Rmarkdown中结合netword3D和美人鱼会使渲染变得混乱

时间:2017-07-07 23:45:29

标签: r r-markdown htmlwidgets networkd3 diagrammer

我想在同一个Rmarkdown文档中加入两个mermaid - 来自DiagrammeR包的network3D流程图和--- title: "Untitled" author: "Me" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` ## The grViz always works ```{r dia1, echo=FALSE} library(DiagrammeR) grViz(" digraph { layout = twopi A -> {B C D} }") ``` # From here onwards I can only include one of the two graphs ```{r} mermaid(" graph LR A-->B ") ``` # Plot ```{r} library(networkD3) Source <- c("A", "A", "A", "A", "B", "B", "C", "C", "D") Target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I") NetworkData <- data.frame(Source, Target) # Create graph simpleNetwork(NetworkData) ``` 图表。如果我在我的文档中包含两者,那么它们都不会渲染,但如果我只包含其中一个,那么它将被渲染。

以下是Rmarkdown中显示问题的最小示例

DiagrammeR

如果我根据grViz添加多个mermaid图表,那么一切都很好,花花公子。此外,如果我遗漏library情节,那么我会看到剩下的两个。他们不应该很好地一起玩吗?我试图交换{{1}}电话的顺序无效。

1 个答案:

答案 0 :(得分:0)

networkD3已更新为2017年2月version 0.3中的D3v4,与D3的v3版本不兼容,这是DiagrammeR似乎使用的版本。 htmlwidgets是驱动networkD3DiagrammeR的底层包,它只使用最新版本的依赖项,因此使用相同库的冲突版本的htmlwidgets不能同时工作。请查看here以获取有关此问题的讨论起点。

你有几个可能的选择,虽然它们都不是很好......

  1. networkD3还原为版本&lt; 0.3这样它也使用D3v3

  2. 游说DiagrammeR developers升级到D3v4

  3. 游说htmlwidgets` developers提出一种处理冲突的JavaScript依赖关系的强大方法