![](/img/trans.png)
[英]Controlling dynamic vertex attributes using networkDynamic and/or ndtv
[英]Dynamic vertex attribute in ndtv
我一直在嘗試在 ndtv 中實現動態頂點屬性,實際上我設法創建了不同大小的頂點,但經過仔細檢查,它們與我認為我指定的值不對應。 相反,頂點大小與第一個 ID 具有最大大小的頂點 ID 成正比。 我試圖通過為每個周期創建一個頂點拼寫來控制大小,並為大小參數設置不同的值
steps <- 500
num_agents <- 40
vs <- as.data.frame(cbind(rep(1:num_agents, each = steps + 1), rep(1:(steps + 1), times = num_agents), rep(1:(steps + 1), times = num_agents)))
names(vs) <- c("vertex.id", "onset", "terminus")
vs$dimension <- gather(means, key = "key", value = "value", names(means)[1]:names(means)[ncol(means)])[,2]
導致以下結果,其中 vs 是頂點拼寫,es 是邊緣拼寫
head(vs)
vertex.id onset terminus dimension
1 1 1 1 5.000000
2 1 2 2 2.777778
3 1 3 3 2.040816
4 1 4 4 1.492537
5 1 5 5 1.388889
6 1 6 6 1.315789
head(es[,1:4])
onset terminus head tail
1 2 501 12 24
2 2 501 2 24
3 2 501 38 2
4 2 501 21 2
5 2 501 28 2
6 2 501 11 30
trade.net <- network(links[,3:4], directed = TRUE, matrix.type = "edgelist", loops = FALSE, multiple = FALSE, ignore.eval = FALSE)
net.dyn <- networkDynamic(base.net = trade.net, edge.spells = es[,1:4], vertex.spells = vs[,c(2,3,1,4)], create.TEAs = TRUE, vertex.TEA.names = "dimension")
net.dyn <- compute.animation(net.dyn, animation.mode = "kamadakawai",
slice.par=list(start = 1, end = 10, interval=1,
aggregate.dur=1, rule='any'))
render.d3movie(net.dyn, usearrows = TRUE,
displaylabels = F,
bg="#111111",
vertex.border="#dddddd",
vertex.cex = net.dyn %v% 'dimension.active',
edge.col = '#55555599',
render.par=list(tween.frames = 10, show.time = FALSE),
slice.par=list(start = 1 , end = 10, interval = 1, aggregate.dur = 1, rule='any'))
我只渲染了部分數據(501 個周期中的前 10 個),但屬性不僅與我想要的不匹配,而且它們在時間上也是不變的。
我找到了一種解決方法,即可以使用渲染命令中的函數。
render.d3movie(net.dyn, usearrows = TRUE,
displaylabels = F,
bg="#111111",
vertex.border="#dddddd",
vertex.cex = function(slice){
degree(slice)/sum(degree(slice)) * 10},
edge.col = '#55555599',
render.par=list(tween.frames = 10, show.time = FALSE),
slice.par=list(start = 1 , end = 10, interval = 1, aggregate.dur = 1, rule='latest')
)
這對於我打算實現但不使用 TEA 的效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.