D3.js D3-绘制多个形状

D3.js D3-绘制多个形状,d3.js,D3.js,我正在为两个平行四边形定义坐标,但只有第一个得到渲染: var shapeCoords = [ [[10, 10], [100, 20], [100, 100], [10, 90]], [[10, 110], [100, 120], [100, 200], [10, 190]] ]; for(var i = 0; i <= 10; i+=10){ path = svg.selectAll('path').dat

我正在为两个平行四边形定义坐标,但只有第一个得到渲染:

var shapeCoords = [
            [[10, 10], [100, 20], [100, 100], [10, 90]],
            [[10, 110], [100, 120], [100, 200], [10, 190]]
          ];

for(var i = 0; i <= 10; i+=10){ 
    path = svg.selectAll('path').data([shapeCoords[i*0.1]], function(d){        
        return [i, i+1, i+2, i+3]; //giving keys 0,1,2,3 and 10,11,12,13 repectively for each loop
        })
        .enter().append('svg:path').attr('d', function(d){
                        return line(d) + 'Z'
                        })
        .//some styles,etc;              
}//end for
var shapeCoords=[
[[10, 10], [100, 20], [100, 100], [10, 90]],
[[10, 110], [100, 120], [100, 200], [10, 190]]
];

对于(var i=0;i我们不需要通过数据数组进行数据连接,d3为我们做这件事

svg.selectAll('path').data(shapeCoords)
  .enter()
  .append('path')
  .attr('d', function(d){
    return line(d) + 'Z'
  })

我们不需要通过数据数组进行数据连接,d3为我们做这件事

svg.selectAll('path').data(shapeCoords)
  .enter()
  .append('path')
  .attr('d', function(d){
    return line(d) + 'Z'
  })

如果上传的代码不起作用,请告诉我,谢谢!我正在寻找关于我的代码不起作用的解释。对不同的形状取所有点都不起作用-它将创建不同的形状,并用一条线连接这些形状,我不希望第二次,你绑定数据,没有必要
输入
你的意思是说path、 append('svg:path')而不是path.enter().append('svg:path'))?我尝试过这个,但是在
输入
附加
之后没有任何更改,没有必要第二次做同样的事情,因为
路径的dom已经存在。请告诉我上传的代码是否不起作用,谢谢!我正在寻找关于我的代码不起作用的原因的解释。并且将所有的点作为不同点t形状不起作用-它将创建不同的形状,并用一条线连接这些形状,我不希望第二次这样做,您绑定数据时,不需要
输入
您的意思是说path.append('svg:path')而不是path.enter().append('svg:path'))?我尝试过这个,但是在
enter
append
之后没有任何更改,因此不需要第二次执行相同的操作,因为
path
的dom已经存在。