2017-07-07 8 views
0

Je voudrais inclure deux htmlwidgets dans le même document Rmarkdown - un organigramme mermaid du paquet DiagrammeR et un graphique network3D. Si j'inclue les deux dans mon document alors aucun d'eux ne rend mais si je n'en inclue qu'un, alors il sera rendu.netword3D et sirène dans Rmarkdown bousille rendu

Voici un exemple minimal de Rmarkdown qui montre le problème

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

Si j'ajouter plusieurs DiagrammeR graphiques basé sur grViz alors tout va bien et dandy. Aussi, si je laisse de côté le complot mermaid alors je verrai les deux autres. Ne sont-ils pas supposés jouer ensemble bien? J'ai essayé d'échanger la commande des appels library en vain.

Répondre

0

networkD3 a été mis à jour à D3v4 en version 0.3 en. Février 2017, ce qui est incompatible avec les versions v3 de D3, qui est ce que DiagrammeR semble utiliser. htmlwidgets, qui est le package sous-jacent qui gère networkD3 et DiagrammeR, utilise uniquement la version la plus récente d'une dépendance, de sorte que htmlwidgets qui utilisent des versions conflictuelles de la même bibliothèque ne peuvent pas fonctionner tous les deux. Vérifiez here pour un point de départ de discussion sur ce problème.

Vous avez quelques options possibles, mais aucun d'entre eux sont grands ...

  1. revert networkD3 à une version < 0,3 pour qu'il utilise également faire pression pour D3v3

  2. le DiagrammeR developers à mise à niveau vers D3v4

  3. pour la htmlwidgets` developers de trouver un moyen robuste de gérer les dépendances JavaScript conflictuelles

+0

Yup. C'est exactement ça. J'ai déposé un [problème avec les DiagrammeR] (https://github.com/rich-iannone/DiagrammeR/issues/232) développeurs et nous verrons comment cela se passera. Merci! – ekstroem