我试图找出forceNetwork()中节点和链接数据帧的确切要求,因为我的网络显示彩色可移动点,没有连接它们的任何边缘,我不知道为什么。据我所知,要求是:
节点数据框必须具有:
链接数据框必须具有:
之间绘制的线的权重
> head(links)
source target value
1 11170 7 1
2 2840 2 1
3 32595 2 1
4 45410 8 1
5 52720 12 1
6 61720 6 1
> head(nodes)
nodeID group
1 11170 2
2 2840 1
3 32595 2
4 45410 3
5 52720 1
6 61720 2
> head(E(g))
Edge sequence:
[1] 7 -- 11170
[2] 2 -- 2840
[3] 2 -- 32595
[4] 8 -- 45410
[5] 12 -- 52720
[6] 6 -- 61720
> head(V(g))
Vertex sequence:
[1] "11170" "2840" "32595" "45410" "52720" "61720"
> typeof(nodes$nodeID[1])
[1] "integer"
> typeof(links$source[1])
[1] "integer"
> dim(links)
[1] 121 3
> dim(nodes)
[1] 135 2
> forceNetwork(Links = links, Nodes = nodes,Source = "source", Target = "target", NodeID = "nodeID",Group = "group", opacity = 0.8, colourScale = "d3.scale.category10()")
答案 0 :(得分:0)
source
数据框中的target
和 Links
向量必须为数字,其值指的是{{}中节点的索引它们表示的数据帧(零索引,与R不同,因为它由JavaScript代码使用)。
Nodes
数据框的nodeID
向量提供每个节点的名称(字符或数字),当您将鼠标悬停在生成的可视化中的节点上时,会显示该名称。
根据您的示例数据,我怀疑您在Nodes
中拥有的数据是节点的ID,而links$source
中的数据则是其他数据。虽然它们都是数字向量,但这些值并不代表它们在links$target
数据框中引用的节点的索引。
如果您的Nodes
和links$source
向量中有节点名称/ ID而不是links$target
数据框中节点的索引,则可以像这样修复它...
Nodes