总结D3.js中节点的所有边的权重?

时间:2015-06-05 20:36:08

标签: javascript d3.js

我想总结连接到节点的所有边的权重并将其用作节点得分?总和将是一个数组,我需要从最高节点订购它们,边缘越多,最低节点。 顺便说一句,我在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"}

            });

        })

1 个答案:

答案 0 :(得分:2)

当您使用d3.json加载数据时,一种方法是在加载数据后直接计算得分,而不是像在小提琴中那样点击。 如果您的数据格式为this example,则以下代码会将每个节点的得分存储为节点上的score属性。 也许您必须根据您的数据集调整属性名称nodeslinkssourcetargetscorevalue

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
 */
});