DC和CrossFilter中的简单折线图

时间:2013-07-23 19:14:18

标签: crossfilter dc.js

我有一些像这样的数据

var data =  [{date:'2013/01/01', claimNo:1},
             {date:'2013/01/01', claimNo:2},
             {date:'2013/01/02', claimNo:3}]

我想在DC中绘制折线图,​​以便日期在X轴上,并且声明的总数在Y轴上。

我有这样的代码

var ndx = crossfilter(data);
 data.forEach(function (e) {
    e.dd = dateFormat.parse(e.dd);
    e.month = d3.time.month(e.dd); 
});
var dateDim = ndx.dimension(function (d) {
    return d.dd;
});
var datesClaimsGroup = dateDim.group();
var claimsLineChart = dc.lineChart("#claims-line-chart");

 claimsLineChart
    .width(200)
    .height(40)
    .renderArea(true)
    .margins({ top: 0, left: -1, right: 2, bottom: 1 })
    .group(datesClaimsGroup)
    .dimension(dateDim)
    .x(d3.time.scale().domain([data[0].dd, data[data.length - 1].dd]))
    .title(function (d) {
        return d.value;
    });

绘制了图表,但Y轴中的值是日期出现次数而不是索赔次数。我知道我应该使用一个函数来计算索赔,但我没有到达那里。

1 个答案:

答案 0 :(得分:1)

对于datesClaimsGroup,您需要提供reduce函数来计算声明。否则,只有.group()将默认为您观察到的身份计数减少功能。

var datesClaimsGroup = dateDim.group().reduceSum(...) 

var datesClaimsGroup = dateDim.group().reduce(...)