繁体   English   中英

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

[英]Summing up the weight of all edges to a node in 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"}

            });

        })

当您使用d3.json加载数据时,一种方法是直接在数据加载后计算分数,而不是像小提琴一样单击。 如果您的数据格式如本示例所示 ,则以下代码将每个节点的分数存储为节点上的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
 */
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM