我需要设置一些圆的半径,我有以下数据,由链接和节点组成。我需要将圆(节点)的半径设置为连接到节点的链接的总和
var data = {
"nodes": [
{
"id": "s1",
"val": 12
},
{
"id": "s2",
"val": 12
},
{
"id": "s3",
"val": 12
},
{
"id": "s4",
"val": 12
},
{
"id": "s5",
"val": 12
},
{
"id": "s6",
"val": 12
}
],
"Links": [
{
"n1": "s1",
"n2": "s2",
"amount": 10
},
{
"n1": "s2",
"n2": "s3",
"amount": 10
},
{
"n1": "s2",
"n2": "s4",
"amount": 10
},
{
"n1": "s2",
"n2": "s6",
"amount": 10
},
{
"n1": "s3",
"n2": "s1",
"amount": 10
},
{
"n1": "s4",
"n2": "s5",
"amount": 10
},
{
"n1": "s5",
"n2": "s6",
"amount": 10
}
]
};
即(我希望节点此时处于上下文中),我在下面编写了一些伪代码
val1 = 0
val2 = 0
for i to len.links
if (links.node1 = nodes.id)
val1 = val1 + links.amount
else if (links.node02 = nodes.id)
val2 = val2 + links.amount
next
sum = val1 + val2
下面的代码将圆圈放在屏幕上,我尝试了各种方法,但结果是我所说的死亡白屏
var w = 1200;
var h = 800;
var svg = d3.select("body").append("svg").attr("width",w).attr("height", h);
var lines = svg.attr("class", "line")
d3.json("data.json", function(error, data) {
console.log(data);
var circles = svg.selectAll("foo")
.data(data.nodes)
.enter()
.append("circle")
.attr("cx", function(d) {
return d.x;
})
.attr("cy", function(d) {
return d.y;
})
.attr("r", 20); // <- i want to put this calculation here
我是 JS 新手,不知道如何将其翻译成 Javascript
相关分类