1

我有一些这样的数据

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 轴中的值是日期发生计数,而不是索赔计数。我知道我应该使用一个函数来计算索赔,但我没有到达那里。

4

1 回答 1

1

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

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

或者

var datesClaimsGroup = dateDim.group().reduce(...) 
于 2013-09-26T08:46:59.967 回答