Javascript d3如何渲染每行15个圆
我有一个数据集,每个值包含250个值,我想为每个数据值渲染一个圆,但在每15个圆之后,我需要切换到下一行并从那里开始渲染。我该怎么做?所有圆必须具有相同的半径3。我的代码:Javascript d3如何渲染每行15个圆,javascript,d3.js,Javascript,D3.js,我有一个数据集,每个值包含250个值,我想为每个数据值渲染一个圆,但在每15个圆之后,我需要切换到下一行并从那里开始渲染。我该怎么做?所有圆必须具有相同的半径3。我的代码: var svg = d3.select('#dots') var dataSet = []; var initialValue = 259 for(var i=0; i<=initialValue; i++){ dataSet.push(i) } var circle = svg.selectAll('ci
var svg = d3.select('#dots')
var dataSet = [];
var initialValue = 259
for(var i=0; i<=initialValue; i++){
dataSet.push(i)
}
var circle = svg.selectAll('circle')
.data(dataSet)
.enter()
.append('circle')
.attr({
r: 3,
cx:function(d, i){
if(i<=15){
return i*10+10
}
},
cy: function(d, i){
if ( i<=15) {
return 20
} else {
return 30
}
},
fill: 'red'
});
var svg=d3.选择(“#点”)
var数据集=[];
var初始值=259
对于(var i=0;i您可以使用运算符:
.attr({
r: 3,
cx:function(d, i){
return 30 + (i%15)*10
},
cy: function(d, i){
return 10 - ((i%15)-i)
},
fill: 'red'
});
检查小提琴:
使用模的逻辑是,对于15的每一个倍数,结果将返回到0。例如,此代码:
var i = -1;
while (i++ < 200) console.log(i%15);
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14...