Я новичок в dc.js.
У меня есть данные:
var data =
[
{date: Date.UTC(2015, 4, 4), frame: "frame1" },
{date: Date.UTC(2015, 2, 1), frame: "frame2" },
{date: Date.UTC(2015, 2, 11), frame: "frame3" },
{date: Date.UTC(2015, 1, 4), frame: "frame4" },
];
//create crossfilter
cf = crossfilter(data);
//create dimension
byDate = cf.dimension(function (d) {
return d.date;
});
//create group
byDateGroup = byDate.group();
И я работаю с этим dc.lineChart
:
//configure timeGraph
timeGraph = dc.lineChart("#range")
.width(document.body.clientWidth)
.height(100)
.dimension(byDate)
.group(byDateGroup)
.transitionDuration(500)
.elasticY(true)
.x(d3.time.scale().domain([(byDate.bottom(1))[0].date, (byDate.top(1))[0].date + 1000]))
;
И я хотел бы получить доступ к данным, которые фильтруются с помощью настраиваемой панели выбора диапазона. Я думаю, что передача функции в onfiltered
будет работать, но я не знаю, к чему получить доступ из chart
, чтобы вернуть текущие отфильтрованные данные.
timeGraph.on("filtered", function (chart) {
console.log(/* print the data filtered by the 'range selector' */);
});
Вот JSFiddle с примером. Если пример должен работать правильно, все, что отображается в таблице, должно отображаться в консоль.
Заранее спасибо.