[英]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
属性。 也许您必须根据数据集调整属性名称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
*/
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.