基于d3中其他值的不同半径的圆

时间:2019-05-18 12:44:14

标签: node.js d3.js networking graph

我正在尝试创建其半径取决于链接数组中的数量值的节点。数据结构如下图所示:

{  "nodes": [{"id": "site01", "x": 317.5, "y": 282.5},
{"id": "site02", "x": 112, "y": 47},
{"id": "site03", "x": 69.5,"y": 287},
{"id": "site04", "x": 424.5, "y": 99.5},
],
"links": [
{"node01": "site01", "node02": "site04", "amount": 10},
{"node01": "site03", "node02": "site02", "amount": 120},
{"node01": "site01", "node02": "site03", "amount": 50},
{"node01": "site04", "node02": "site02", "amount": 80}]
}

半径必须与总量成比例。例如,site01的半径必须为60,而site02的半径必须为200。我尝试了一些代码,但似乎不起作用。

var nodeRadius = {};
        data.links.forEach(function (n){
            nodeRadius[n.id] = n;
        });

nodes.attr("r", function (d) {return nodeRadius[d.node01].amount;})

请提出一个有效的代码。

0 个答案:

没有答案