【发布时间】:2017-10-16 15:32:42
【问题描述】:
我想制作一个 x 轴为日期的条形图,例如2017-08-12,y值为同一日期的数据行数(即记录数)。
// get data into right format
var dateFormat = d3.time.format("%Y-%m-%d");
pageViews.forEach(function(d) {
d['timestamp'] = dateFormat.parse(d['timestamp'].slice(0,10));
d['timestamp'].setDate(1);
});
// Create Crossfilter instance
var cf = crossfilter(data);
var dateDim = cf.dimension(function(d) {return d['timestamp'];});
var numByDate = dateDim.group();
但如果我这样做了
console.log(numByDate.top(Infinity));
这会返回 5 个元素,它们是每个月的第一天,所以我的组是年月而不是年月日,我该如何解决这个问题?
我查看了这个crossfilter.js: group data by month,但它不起作用,使用 .all() 后我仍然得到同样的东西。
我试过这个:
var numByDate = dateDim.group(function(d) {return d['timestamp'];});
它只是返回一个空对象。
【问题讨论】:
标签: javascript d3.js dc.js crossfilter