2013-07-23 5 views
1

У меня есть некоторые данные, как этотПростого линейного график в DC и CrossFilter

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

Для датКатегориям группы вам необходимо предоставить функцию уменьшения для подсчета претензий. В противном случае только .group() по умолчанию выполнит функцию уменьшения количества идентификаторов, как вы заметили.

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

или

var datesClaimsGroup = dateDim.group().reduce(...) 
Смежные вопросы