0

我想htmlwidgets在同一个 Rmarkdown 文档中包含两个 - 包中的mermaid流程图DiagrammeRnetwork3D图表。如果我将两者都包含在我的文档中,那么它们都不会呈现,但如果我只包含其中一个,那么它将被呈现。

这是 Rmarkdown 中显示问题的最小示例

---
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)
```

如果我DiagrammeR基于添加多个图表,grViz那么一切都很好。另外,如果我省略了mermaid情节,那么我会看到剩下的两个。他们不应该很好地一起玩吗?我试图交换library呼叫的顺序无济于事。

4

1 回答 1

0

networkD3在 2017 年 2 月的0.3 版中更新为 D3v4 ,这与DiagrammeR似乎使用的 D3 的 v3 版本不兼容。htmlwidgets,它是驱动networkD3和的底层包DiagrammeR,仅使用最新版本的依赖项,因此使用同一库的冲突版本的 htmlwidget 不能同时工作。在这里查看有关此问题的讨论起点。

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

  1. 恢复networkD3到 < 0.3 的版本,以便它也使用 D3v3

  2. DiagrammeR开发者大厅升级到 D3v4

  3. 游说htmlwidgets` 开发人员想出一种处理冲突的 JavaScript 依赖项的可靠方法

于 2017-08-29T14:36:18.443 回答