我想用.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)
这些都不起作用.谢谢你的帮助.
解决方案是使用“.filter”。
var specificRect = myselection.selectAll("rect").data(dataset)
.filter(function(d) { return (d >= 5 && d <= 9) })
Run Code Online (Sandbox Code Playgroud)