我正在尝试使用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; })))
];
// ...
答案 0 :(得分:1)
用cnt制作你的“emps”组合,如:
emps = emp.group().reduceSum(function (d) { return d.cnt; });
这将为您提供每位员工的cnt字段的总和。由于每个员工只有一条记录,因此您只需获取cnt字段的值。