我目前正在尝试使用自己的数据复制以下图形网络(https://bl.ocks.org/mapio/53fed7d84cd1812d6a6639ed7aa83868)。我必须与生成节点之间的链接/边缘有关的问题。
错误:
未捕获(承诺)错误:
missing: B_01_062
是从此行发生的:
.force("link", d3.forceLink(graph.links).id(function (d) { return d.id; }).distance(50).strength(1))
定义图形布局变量的位置。如果您注释掉这条线,则只会生成带有节点的图形。
我尝试将d3.tojson函数返回的图形对象转换为结构如下的javascript对象。
var g = {
nodesL: [...],
linksL: [...]
}
这也不起作用。
以下是示例数据的子集:
{
"nodes": [
{
"id": "Myriel",
"group": 1
},
{
"id": "Napoleon",
"group": 1
},
{
"id": "Mlle.Baptistine",
"group": 1
},
]
"links": [
{
"source": "Napoleon",
"target": "Myriel",
"value": 1
},
{
"source": "Mlle.Baptistine",
"target": "Myriel",
"value": 8
},
{
"source": "Mme.Magloire",
"target": "Myriel",
"value": 10
},
]
}
这是我当前数据的一部分,如下所示:
{
"nodes": [
{
"id": "&=ARMS-CROSS", "Code": "J_01_098", "NeighborhoodDensity": 3},
{
"id": "&=CLAP", "Code": "J_02_076", "NeighborhoodDensity": 3},
{
"id": "&=RAISE-HAND", "Code": "H_02_48", "NeighborhoodDensity": 3},
"links": [
{
source: "B_01_062",
target: "A_01_002"
},
{
source: "B_03_025",
target: "A_01_002"
},
{
source: "C_03_023",
target: "A_01_002"
}
]
}
我什至尝试将源值和目标值转换为实际数字。
// convert to a javascript object
function convertToObj(link_obj) {
var conv_obj = {}
// conv_obj.source = link_obj['source'];
// conv_obj.target = link_obj['target'];
conv_obj.source = parseInt(link_obj['source'].replace(/\D[^\.]/g, ""));
conv_obj.target = parseInt(link_obj['target'].replace(/\D[^\.]/g, ""));
// console.log(conv_obj.source);
// console.log(conv_obj.target);
// console.log(conv_obj);
return conv_obj;
}
links数组看起来像这样
links: [
{
source: 162,
target: 102
},
{
source: 325,
target: 102
},
{
source: 323,
target: 102
}
]