2016-09-01 2 views
2

Je voudrais rendre un réseau dynamique en R en utilisant la librairie rapide MDSJ. Malheureusement, toutes les coordonnées des vertices semblent être 0,0 en utilisant ce moteur de rendu, ce qui n'est pas le cas lorsque vous utilisez l'une des autres mises en page (kamadakawai ou Graphviz.) Si vous collez le code ci-dessous, vous devriez pouvoir reproduire le problème .Comment rendre un réseau networkDynamic en utilisant le moteur de rendu MDSJ dans R?

if (!require("pacman")) install.packages("pacman") 
library("pacman") 
pacman::p_load(network, networkDynamic, ndtv) 

#animation.mode = "MDSJ" 
#animation.mode = "Graphviz" 
animation.mode = "kamadakawai" 
people <- c("A","B","C","D","E") 
documents <- paste0("a",1:10) 
edges <- data.frame(from = c("A","A","A","B","B","C","D"), 
        to  = c("a1","a2","a3","a4","a5","a1","a1"), 
        active = c(1,2,3,3,4,4,4)) 
net <- network.initialize(0, directed = TRUE, bipartite = length(people)) 

add.vertices.networkDynamic(net, 5, vertex.pid = people) 
add.vertices.networkDynamic(net, 10, vertex.pid = documents) 

net %v% "vertex.names" <- c(people, documents) 
net %v% "vertex.col" <- c(rep("blue", length(people)), rep("gray", length(documents))) 
set.network.attribute(net,'vertex.pid','vertex.names') 

add.edges.networkDynamic(net, 
         tail = get.vertex.id(net, edges[[1]]), 
         head = get.vertex.id(net, edges[[2]]), 
         edge.pid = paste0(edges[[1]], "->", edges[[2]])) 
activate.edges(net, e = 1:7, at = edges[[3]]) 
reconcile.vertex.activity(net = net, mode = "encompass.edges", edge.active.default = FALSE) 

slice.par <- list(start = 1, end = 4, interval = 1, aggregate.dur = 2, rule = "earliest") 
compute.animation(net, 
        animation.mode = animation.mode, 
        slice.par = slice.par) 
render.d3movie(net, 
       slice.par = slice.par, 
       displaylabels = TRUE, 
       output.mode = "htmlWidget", 
       vertex.col = 'vertex.col') 

en utilisant kamadakawai, on obtient une vue dynamique comme celui-ci:

enter image description here

en utilisant MDSJ, toutes les diapositives ressemblent à ceci:

enter image description here

Répondre

0

Ce code fonctionne sur mon système avec MDSJ. Est-ce qu'il s'installe correctement sur le vôtre? Lorsqu'il est utilisé pour la première fois, il doit télécharger et installer une application Java mdsj.jar.

+0

Oui, lors de la première utilisation, on m'a demandé la permission de télécharger et d'installer MDSJ. Cela a réussi, et je vois maintenant que MDSJ est appelé pendant le processus. Pour une raison quelconque, cependant, cela ne fonctionne pas comme prévu, comme expliqué ci-dessus. J'ai Mac OS X 10.11.6 El Capitan et Java 8 Update 101 build 13 et RStudio Version 0.99.896. Avez-vous activé MDSJ dans l'extrait ci-dessus en décommentant le # animation.mode = "MDSJ" et en commentant "kamadakawai"? – Mischa

+0

Oui, je l'ai fait. Comment pourrais-je savoir, en supposant que je n'avais jamais utilisé le logiciel auparavant, qu'il demande un téléchargement java si je ne l'ai pas fait? En outre, j'utilise une version antérieure de Mac OS qui n'a pas les problèmes d'autorisations d'El Capitan, mais si vos autres paquets R fonctionnent, cela devrait être bon. Tout ce qui utilise RJava fonctionne-t-il normalement? Je n'utilise pas non plus RStudio, bien que je ne puisse pas voir comment cela fait une différence. – user2619203

+0

Le paquetage rJava n'a pas été installé, mais l'installer n'a rien changé. – Mischa