如何将所有数据添加到我的数组以用于色标?
How to add all data to my array to use with a color scale?
我有一个力导向图。我使用的 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",
}]}}}
对于 link 我的节点,我使用这个 :
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});
});
这只会将源和目标放入数组中。我想根据它拥有的数据为 link 着色:
links.style("stroke", function(d) { clog(d.label) });
我不能这样做,因为我正在使用上面填充的 edges
数组作为 link 的数据,并且其中只有源数据和目标数据,而不是 label
我需要的数据。
如何将其余数据添加到边缘数组?
我已经试过了:
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
中的内容links(边缘)着色
我猜是 coreId: coreId
造成了问题,您没有在任何地方定义 coreId
。删除它并尝试。
我有一个力导向图。我使用的 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",
}]}}}
对于 link 我的节点,我使用这个 :
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});
});
这只会将源和目标放入数组中。我想根据它拥有的数据为 link 着色:
links.style("stroke", function(d) { clog(d.label) });
我不能这样做,因为我正在使用上面填充的 edges
数组作为 link 的数据,并且其中只有源数据和目标数据,而不是 label
我需要的数据。
如何将其余数据添加到边缘数组?
我已经试过了:
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
中的内容links(边缘)着色
我猜是 coreId: coreId
造成了问题,您没有在任何地方定义 coreId
。删除它并尝试。