我使用this example中的代码创建一组独立行作为path
元素:
svgContainer.append("path")
.attr("d", lineFunction(lineData))
.attr("stroke", "blue")
.attr("stroke-width", 2)
.attr("fill", "none");
由于我在lineData数组中拥有所有行数据,因此在每次迭代中我只想传递一个项目,例如lineFunction(lineData[i])
。我的问题是如何获得当前索引,因为我通常可以在D3中使用someFunction(d, i){}
答案 0 :(得分:2)
您需要先以典型的d3方式绑定到lineData
。所以:
svgContainer.selectAll('path').data(lineData).enter()
.append("path")
.attr("d", lineFunction)
.attr("stroke", "blue")
.attr("stroke-width", 2)
.attr("fill", "none");
在线
.attr("d", lineFunction)
lineFunction
使用d
和i
作为参数调用,其中d
是数组中的元素(如果我理解的话,它是一个点数组)。这和做
.attr("d", function(d,i) { return lineFunction(d); }
与
相同 .attr("d", function(d,i) { return lineFunction( lineData[i]); }