Javascript 如何使用d3.js在直行中定位圆
我提前道歉,因为我对d3.js和编程都是全新的。我的目标是为数据集中的每个数据点画一个SVG圆圈。我希望这些圆从左上角开始,向右移动,直到它们到达窗口的末端,然后从左边开始,但在刚才绘制的前一行圆的下方 我的全局变量是:Javascript 如何使用d3.js在直行中定位圆,javascript,svg,d3.js,Javascript,Svg,D3.js,我提前道歉,因为我对d3.js和编程都是全新的。我的目标是为数据集中的每个数据点画一个SVG圆圈。我希望这些圆从左上角开始,向右移动,直到它们到达窗口的末端,然后从左边开始,但在刚才绘制的前一行圆的下方 我的全局变量是: var counterX = 1; var counterY = 20; var windowWidth = window.innerWidth; var rowSize = windowWidth/12; //I chose 20 bc each circle has a R
var counterX = 1;
var counterY = 20;
var windowWidth = window.innerWidth;
var rowSize = windowWidth/12; //I chose 20 bc each circle has a Radius of 5.
我的x&y属性包括:
.attr("cx", function(d, i) {
if(i%rowSize==0){counterX == 0}
else{return counterX++}
})
.attr("cy", function(d, i){
if(i%rowSize==0){return 12*counterY++}
return counterY;
})
我不明白为什么当I%rowSize==0时计数器x没有重置,而且我也不知道如何在一行完全绘制后向下移动Y变量。CounterX==0应该是CounterX=0谢谢,但我仍然有同样的问题..要向下移动一行,我想你必须这样做:counterY=12*counterY,是否将行大小格式化为整数?i递增为整数1,2,3,4,5,因此如果rowsize是浮点,则i%rowsize==0可能永远不会发生;如果不是,您的数据集有多大?是否有可能因为rowsize太大而不发生i/rowsize==0?也许试着给它一个固定的数字只是为了测试。谢谢你的建议,都解决了我的问题!