2

高速な MDSJ ライブラリを使用して、R で動的ネットワークをレンダリングしたいと考えています。残念ながら、すべての頂点の座標はこのレンダリング エンジンを使用しているように見えますが、他のレイアウト (または0,0) を使用する場合はそうではありません。以下のコードを貼り付ければ、問題を再現できるはずです。kamadakawaiGraphviz

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

kamadakawai を使用すると、次のような動的なビューが得られます。

ここに画像の説明を入力

MDSJ を使用すると、すべてのスライドは次のようになります。

ここに画像の説明を入力

4

1 に答える 1