我想选择.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]
这些都不起作用。谢谢你的帮助。
答案 0 :(得分:3)
解决方案是使用“.filter”。
var specificRect = myselection.selectAll("rect").data(dataset)
.filter(function(d) { return (d >= 5 && d <= 9) })