2013-07-24 32 views
5

我想用.select().selectAll()选择数据的子集。D3:无法选择我的数据集的子集

例如,我有一个数据集:

var dataset = [4,5,6,7,9,56] 

此数据集的每一个数字绑定到SVG <rect>

svg.selectAll("rect") 
    .data(dataset) 
    .enter() 
    .append("rect"); 

现在我想选择仅用于数据的子集在它上面涂上一些东西(在我的情况下用黄色着色)。

这适用于着色<rect>

var allRect = myselection.selectAll("rect") 
    .attr("fill","rgb(255, 255, 0)"); 

但我想选择,例如,仅对应于相应的5和7或者至少<rect>之间的数字<rect>小号到我的数据集中的特定数字。

我想:

var specificRect = myselection.selectAll("rect")[5:9] 

var specificRect = myselection.selectAll("rect")[5] 

var specificRect = myselection.selectAll("rect")[2,3,4] 

var specificRect = myselection.selectAll("rect").data(dataset)[1] 

这些都不是工作。谢谢你的帮助。

+3

您可以发布自己的问题的答案,并接受。 –

回答

3

的解决方案是使用“.filter”的。

var specificRect = myselection.selectAll("rect").data(dataset) 
.filter(function(d) { return (d >= 5 && d <= 9) })