修改Crossfilter“Flights”示例,以便其中一个图形不是分组图形?

时间:2014-03-03 00:56:33

标签: crossfilter

我正在尝试使用Crossfilter example site作为我所需图表的开头,但我正在努力创建一个与分组图表交互的非分组图表。

我的数据是唯一员工记录的列表:

employee,cnt
john,3
bill,15
fred,30
jill,6
...

我想要一个图表来显示按值分组的 cnt 字段,类似于示例的距离图表。我想要的下一个图表会为每个员工设置一个栏,但不是按员工值对其进行分组,而是希望图表只显示 cnt < / em> value。

这是我到目前为止所做的事情;但是,这会在两个图表上分组:

// ...

var crossData = crossfilter(data),
    all = crossData.groupAll(),
    cnt = crossData.dimension(function(d) { return d.cnt; }),
    cnts = cnt.group(),
    emp = crossData.dimension(function(d) { return d.employee; }),
    emps = emp.group();

var charts = [  
  barChart()
      .dimension(cnt)
      .group(cnts)
    .x(d3.scale.linear()
      .domain([0, 15])
      .rangeRound([0, 920])),

  barChart()
      .dimension(emp)
      .group(emps)
    .x(d3.scale.ordinal().rangePoints([0, 920])
      .domain(data.map(function(d) { return d.employee; })))  
];

// ...

1 个答案:

答案 0 :(得分:1)

用cnt制作你的“emps”组合,如:

emps = emp.group().reduceSum(function (d) { return d.cnt; });

这将为您提供每位员工的cnt字段的总和。由于每个员工只有一条记录,因此您只需获取cnt字段的值。