我有一个力导向图。我使用的JSON数据如下所示:
var network = {
network: {
data: {
edges: [
{
directed: true,
id: "B_FRED_BEN",
"source": "FRED",
"target": "BEN",
"classif": "A",
"label": "A"
}],
nodes: [
{
"id": "FRED",
"classif": "B",
"createdOn": "2013-09-09",
"label": "2",
}]}}}
要链接我的节点,请使用:
nodesData = network.network.data.nodes;
edgesData = network.network.data.edges;
edges = [];
edgesData.forEach(function(e) {
var sourceNode = nodesData.filter(function(n) { return n.id === e.source;})[0];
var targetNode = nodesData.filter(function(n) { return n.id === e.target; })[0];
edges.push({source: sourceNode, target: targetNode});//, value: e.Value});
});
这只将源和目标放入数组中。我想根据链接的颜色为链接着色:
links.style("stroke", function(d) { clog(d.label) });
我不能这样做,因为我使用上面填充的edges
数组作为我的链接数据,而且它只包含源数据和目标数据,而不是我需要的label
数据。 / p>
如何将其余数据添加到edge数组?
我试过这个:
nodesData = network.network.data.nodes;
edgesData = network.network.data.edges;
edges = [];
edgesData.forEach(function(e) {
var directed = e.directed,
id = e.id,
sourceNode = nodesData.filter(function(n) { return n.id === e.source;})[0],
targetNode = nodesData.filter(function(n) { return n.id === e.target; })[0],
classif = e.classif,
label = e.label;
edges.push({directed: directed, id: id, source: sourceNode, target: targetNode, classif: classif, label: label});//, value: e.Value});
});
这不起作用:/
我想要的是根据它在数据中的label
颜色链接(边缘)
答案 0 :(得分:1)
我想问题是coreId: coreId
正在创建问题,您还没有在任何地方定义coreId
。删除它并尝试。