dc.js 忽略今天之后的结果
dc.js ignore results later than today
在 DC.JS 中,我有一个 A 减去 B 的前 10 个方差的行图,其中 dim/group:
.dimension(dateDim)
.group(grp)
相关变量是:
var dateDim = ndx.dimension(function (d) { return d.DATE; });
var dateFormat = d3.time.format("%d/%m/%Y");
对于小组来说,这很好用:
var grp= dateDim.group().reduceSum(function(d) {return Math.abs(d.A - d.B);});
但是,我只想显示截止到今天的项目。
我尝试了下面的功能,但它不起作用。它可能只是语法。
有什么想法吗?
var grp2= dateDim.group().reduceSum(function(d) {
if (dateDim > dateFormat(today))return dateDim; else return Math.abs(d.A- B.plan);
谢谢,stutray
这在 dc.js 常见问题解答中得到解决:https://github.com/dc-js/dc.js/wiki/FAQ#how-do-i-filter-the-data-before-its-charted
所以……原来我上面说的。但您真正想要做的是过滤掉与特定预定义过滤器不匹配的记录,以便它们不会聚合到您的图表组中?在这种情况下,您需要使用自定义过滤器函数,我建议使用像 Reductio 这样的辅助库,它提供了过滤器函数。
var dAct = reductio().filter(function(d) {
// Here `d` is the actual data record. Return a boolean by testing
// d against your filter criteria. Return true to include the record and
// false to exclude it.
return d.STARTDATE !== "10\/Sep\/2016";
})
.sum(function(d) {return Math.abs(d.A - d.B);})(dateDim.group());
如果您使用 Reductio,您还需要在 dc.js 中的图表上使用 valueAccessor 函数:
rChart
...
.valueAccessor(function(d) { return d.value.sum; })
更新了 Codepen 上的示例:http://codepen.io/anon/pen/oxrPJv
在 DC.JS 中,我有一个 A 减去 B 的前 10 个方差的行图,其中 dim/group:
.dimension(dateDim)
.group(grp)
相关变量是:
var dateDim = ndx.dimension(function (d) { return d.DATE; });
var dateFormat = d3.time.format("%d/%m/%Y");
对于小组来说,这很好用:
var grp= dateDim.group().reduceSum(function(d) {return Math.abs(d.A - d.B);});
但是,我只想显示截止到今天的项目。
我尝试了下面的功能,但它不起作用。它可能只是语法。 有什么想法吗?
var grp2= dateDim.group().reduceSum(function(d) {
if (dateDim > dateFormat(today))return dateDim; else return Math.abs(d.A- B.plan);
谢谢,stutray
这在 dc.js 常见问题解答中得到解决:https://github.com/dc-js/dc.js/wiki/FAQ#how-do-i-filter-the-data-before-its-charted
所以……原来我上面说的。但您真正想要做的是过滤掉与特定预定义过滤器不匹配的记录,以便它们不会聚合到您的图表组中?在这种情况下,您需要使用自定义过滤器函数,我建议使用像 Reductio 这样的辅助库,它提供了过滤器函数。
var dAct = reductio().filter(function(d) {
// Here `d` is the actual data record. Return a boolean by testing
// d against your filter criteria. Return true to include the record and
// false to exclude it.
return d.STARTDATE !== "10\/Sep\/2016";
})
.sum(function(d) {return Math.abs(d.A - d.B);})(dateDim.group());
如果您使用 Reductio,您还需要在 dc.js 中的图表上使用 valueAccessor 函数:
rChart
...
.valueAccessor(function(d) { return d.value.sum; })
更新了 Codepen 上的示例:http://codepen.io/anon/pen/oxrPJv