ř光泽D3网络图与NodeSize

问题描述 投票:0回答:1

我使用D3Network库网页上绘制图形(使用有光泽)。

wc <- cluster_walktrap(finalGraph)
members <- membership(wc)
karate_d3 <- igraph_to_networkD3(finalGraph, group = members)

forceNetwork(Links = karate_d3$links, Nodes = karate_d3$nodes, 
                     Source = 'source', Target = 'target', opacity = 0.85, zoom = TRUE,
                     NodeID = 'name', Group = 'group', fontSize = 20, Nodesize = "weight",
                     colourScale = JS('force.alpha(1); force.restart(); d3.scaleOrdinal(d3.schemeCategory20);'))

finalGraph这里是一个加权的igraph我转换为D3

V(finalGraph)$weight <- #logic to assign weight

我想D3的Nodesize代表的权重值,但这样做是列没有定义Nodesize = "weight"不起作用。如何添加为属性/列D3所以它可以绘制的重量?

r d3.js shiny
1个回答
1
投票

你要的大小存储在节点矩阵。这里是一个完全工作的例子包括图形。请注意,该节点的大小没有直接采取而是由另一功能(radiusCalculation)以某种方式重新计算。

library(networkD3)
library(igraph)

# build graph
finalGraph <- erdos.renyi.game(10,0.3)
wc <- cluster_walktrap(finalGraph)
members <- membership(wc)
karate_d3 <- igraph_to_networkD3(finalGraph, group = members)

# here is the important line: set size!
karate_d3$nodes$size = abs(rnorm(10,mean=1,sd=10))^2

forceNetwork(Links = karate_d3$links, Nodes = karate_d3$nodes, 
             Source = 'source', Target = 'target', opacity = 0.85, zoom = TRUE,
             NodeID = 'name', Group = 'group', fontSize = 20, Nodesize = 'size',
             colourScale = JS('force.alpha(1); force.restart(); d3.scaleOrdinal(d3.schemeCategory20);'))

© www.soinside.com 2019 - 2024. All rights reserved.