首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用权向量设置networkD3节点大小

用权向量设置networkD3节点大小
EN

Stack Overflow用户
提问于 2017-10-30 23:18:10
回答 1查看 1.7K关注 0票数 2

我试图在R中使用data.treeNetworkD3来创建文件系统的树表示,其中图的节点是按文件大小加权的。

代码语言:javascript
运行
复制
library(data.tree)
library(networkD3)

repo <- Node$new("Repository")
git <- repo$AddChild(".git")
prod <- repo$AddChild("Production")
exp <- repo$AddChild("Experimental")

repo$size <- 866000
git$size <- 661000
prod$size <- 153000
exp$size <- 48000

我可以用Get得到这些大小的向量,这样

代码语言:javascript
运行
复制
sizes <- repo$Get("size")

但是,当我试图把所有这些都放在一起时,我不知道如何将这些权重信息包含在网络可视化步骤中。想做这样的事..。

代码语言:javascript
运行
复制
reponet <- ToDataFrameNetwork(repo,"repo")
net <- forceNetwork(reponet, Nodesize = repo$Get("size"))

都没有用。基本上,我在做朱莉娅·西尔奇在这个伟大的SO blog post中所做的事情。有人知道怎么设置这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-30 23:51:05

查看帮助文件中的forceNetwork..。有许多强制性的参数您还没有设置。

您可以使用simpleNetwork来绘制一个只有一个链接数据帧的网络,但它不允许您控制节点大小……例如..。

代码语言:javascript
运行
复制
simpleNetwork(reponet)

要控制节点大小,需要使用forceNetwork,但它需要链接数据帧和节点数据帧。您可以从您创建的sizes对象构建节点数据框架,然后调整链接数据框架中的源it和目标it,以匹配节点数据帧中相应节点的索引(0索引,因为它被发送到JavaScript).例如..。

代码语言:javascript
运行
复制
nodesdf <- data.frame(name = names(sizes), nodesize = sizes / 10000, group = 1)

reponet$from <- match(reponet$from, nodesdf$name) - 1
reponet$to <- match(reponet$to, nodesdf$name) - 1

forceNetwork(reponet, Nodes = nodesdf, Source = "from", Target = "to", 
             NodeID = "name", Group = "group", Nodesize = "nodesize")
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47025650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档