我想选择具有.select()
或.selectAll()
的数据子集。
例如,我有一个数据集:
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]
这些都不起作用。谢谢你的帮助。
解决方案是使用".filter".
var specificRect = myselection.selectAll("rect").data(dataset)
.filter(function(d) { return (d >= 5 && d <= 9) })