D3:无法选择我的数据集的子集

Cyr*_*lop 5 d3.js

我想用.select()或选择一个数据子集.selectAll().

例如,我有一个数据集:

var dataset = [4,5,6,7,9,56]
Run Code Online (Sandbox Code Playgroud)

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

svg.selectAll("rect")
  .data(dataset)
  .enter()
  .append("rect");
Run Code Online (Sandbox Code Playgroud)

现在我想只选择一个数据子集来应用它上面的东西(在我的情况下用黄色着色).

这适用于着色每一个<rect>:

var allRect = myselection.selectAll("rect")
  .attr("fill","rgb(255, 255, 0)");
Run Code Online (Sandbox Code Playgroud)

但是我想选择,例如,只选择<rect>对应于5到7之间的数字的s.或者至少选择<rect>与我的数据集中的特定数字相对应的s .

我试过了:

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]
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.谢谢你的帮助.

Cyr*_*lop 3

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

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