d3:根据特定字段对元素进行数据分发

d3: Data Distribution to Elements Based on Specific Field

是否可以"distribute" 数据到每个元素(比如圆圈)基于 d3 的一个字段?

假设我有一个包含以下字段的数据集: "name", "age", "from".

我想创建圆圈,每个圆圈将包含具有 "from"=="SOMEVALUE" 的所有行。

d3 代码类似于:

d3.selectAll(".circle")
  .data(data)   // <- I want each circle to hold filtered data
  .enter()      // based on field "from".
  .append("circle")
  .filter(....)

如果问题措辞不当,我深表歉意。 提前致谢!

在 d3 绑定之前过滤数据,使用原生数组 .filter()。像这样:

d3.selectAll(".circle")
  .data(data.filter(function(d) {
    return d.from == 'SOMEVALUE'
  })
  .enter()      // based on field "from".
  .append("circle")