我想总结连接到节点的所有边的权重并将其用作节点得分?总和将是一个数组,我需要从最高节点订购它们,边缘越多,最低节点。 顺便说一句,我在D3中使用了力布局。
谢谢。
到目前为止:
var sum=[]
edges.style("stroke", function(d, i) {
if ((d.source.name == node_name) || (d.target.name == node_name))
{ dataset.nodes.push(function(d){
//console.log(d.name)
return {sum:d.name}});
sum+= d.weight;
//console.log(d3.max(sum))
return "#000"}
else
{
return "#ccc"}
});
})
答案 0 :(得分:2)
当您使用d3.json
加载数据时,一种方法是在加载数据后直接计算得分,而不是像在小提琴中那样点击。
如果您的数据格式为this example,则以下代码会将每个节点的得分存储为节点上的score
属性。
也许您必须根据您的数据集调整属性名称nodes
,links
,source
,target
,score
和value
。
d3.json("assignments.json", function(error, graph) {
graph.nodes = graph.nodes.map(function(node, index){
node.score = graph.links
.filter(function(d){
return (d.source === index || d.target === index);
})
.map(function(d){
return d.value;
})
.reduce(function(prev, curr){
return prev + curr;
},0);
return node;
});
/**
* init force here
*/
});