我有一些像这样的数据
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轴中的值是日期出现次数而不是索赔次数。我知道我应该使用一个函数来计算索赔,但我没有到达那里。
答案 0 :(得分:1)
对于datesClaimsGroup,您需要提供reduce函数来计算声明。否则,只有.group()
将默认为您观察到的身份计数减少功能。
var datesClaimsGroup = dateDim.group().reduceSum(...)
或
var datesClaimsGroup = dateDim.group().reduce(...)