d3Network:如何将节点与链接相关联?

时间:2013-07-02 09:23:42

标签: r d3.js

我正在玩d3Network包。我从帮助文件中运行了以下示例。我确定这很简单,但我无法弄清楚它如何识别分配给哪个链接的节点。

devtools::install_github("d3Network", "christophergandrud")
library(d3Network)
library(rjson)

json_file <- "https://raw.github.com/christophergandrud/d3Network/master/JSONdata/miserables.json"
json_text <- paste(readLines(json_file), collapse = '')
MisLinks <- JSONtoDF(json_text, array = "links")
MisNodes <- JSONtoDF(json_text, array = "nodes")

d3ForceNetwork(Links = MisLinks, 
           Nodes = MisNodes, 
           Source = "source",
           Target = "target", 
           Value = "value", 
           NodeID = "name",
           Group = "group", 
           opacity = 1,
           file = "example_graph_force_directed.html")

查看两个数据框。文档说,链接数据框必须按源排序,节点名称的顺序相同。

这是否意味着'节点1'是'Myriel'而'节点2'是'拿破仑'?如果是,那么节点0在哪里被命名?

> head(MisLinks)
  source target value
1      1      0     1
2      2      0     8
3      3      0    10
4      3      2     6
5      4      0     1
6      5      0     1


> head(MisNodes)
             name group
1          Myriel     1
2        Napoleon     1
3 Mlle.Baptistine     1
4    Mme.Magloire     1
5    CountessdeLo     1
6        Geborand     1

有人能够解释,或者向我展示一个可以解释事情的小例子吗?

由于

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子,纯粹用R:

创建
jjnames<-c("A","B","C","D","E","F","G","H")
mygroup<-c(1,1,1,2,2,2,2,2)
JJNodes<-data.frame( name=jjnames, group=mygroup )
jjsources<-c( 0 , 4 )
jjtargets<-c(  1,  5 )
jjvalues<-rep( c(1,2) , length(jjtargets) ) ; jjvalues<-jjvalues[1:length(jjtargets)]
JJLinks<-data.frame(source=jjsources,target=jjtargets,value=jjvalues)
d3ForceNetwork(Links = JJLinks, Nodes = JJNodes, 
           Source = "source", Target = "target", 
           Value = "value", NodeID = "name", 
           Group = "group", width = 550, height = 400, zoom=TRUE,
           opacity = 0.9)`

链接由成对的节点索引定义。 0 =&gt; 1将第一个节点与第二个节点链接起来。