我是一个非常初学的程序员(非常重视)。我想弄清楚如何遍历颜色数组,以便制作三个不同颜色的矩形。这是我到目前为止的代码:D3 - 如何迭代颜色数组
var dataArray = [5, 11, 18];
var colors = ["red", "green", "black"];
var svg = d3.select("body").append("svg")
.attr("width","2000").attr("height","400");
svg.selectAll("rect")
.data(dataArray)
.enter()
.append("rect")
.attr("fill", function(d, i) { return colors*i}) //the line of code in question
.attr("x", function(d,i) { return 70*i + 50; })
.attr("y", function(d,i) { return d*15; })
.attr("height", function(d,i) { return 500; })
.attr("width", "50");
//code end
正如你所看到的,我一直在尝试使用function(d, i)
通过阵列的颜色迭代,未果。完全公开:上面的代码是为一个类创建的,但这个特定的问题不属于任务的一部分。我试图超出任务范围。
在d3中,你不需要像这样使用for循环。将问题行更改为'。attr(“fill”,function(d,i){return colors [i];})'就足够了。这个for循环会在每次循环数组时打印所有的形状(每次迭代都会有相同的颜色)。 –
@Andrew Reid我今天学到了一件东西:)谢谢! – Shtut
非常感谢!这也有助于我更好地理解我。 – RND