从 dc.js 图表访问 filtered/clipped 数据
Accessing filtered/clipped data from a dc.js chart
我是 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]))
;
我想访问由 adjustable 范围选择器栏过滤的数据。我认为将函数传递给 onfiltered
会起作用,但我不知道要从 chart
访问什么才能 return 当前过滤的数据。
timeGraph.on("filtered", function (chart) {
console.log(/* print the data filtered by the 'range selector' */);
});
Here's a JSFiddle with an example. 如果示例正常运行,table 显示的所有内容都应该显示在控制台中。
提前致谢。
在维度上使用 top
方法。在您的 fiddle、byDate.top(Infinity)
.
的上下文中
https://jsfiddle.net/6p3vhga9/
Crossfilter API 方法文档:https://github.com/square/crossfilter/wiki/API-Reference#dimension_top
我是 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]))
;
我想访问由 adjustable 范围选择器栏过滤的数据。我认为将函数传递给 onfiltered
会起作用,但我不知道要从 chart
访问什么才能 return 当前过滤的数据。
timeGraph.on("filtered", function (chart) {
console.log(/* print the data filtered by the 'range selector' */);
});
Here's a JSFiddle with an example. 如果示例正常运行,table 显示的所有内容都应该显示在控制台中。
提前致谢。
在维度上使用 top
方法。在您的 fiddle、byDate.top(Infinity)
.
https://jsfiddle.net/6p3vhga9/
Crossfilter API 方法文档:https://github.com/square/crossfilter/wiki/API-Reference#dimension_top