带时间维度的条形图

barChart plot with time dimension

我想制作一个 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));

这个returns5个元素是每个月的第一天,所以我的组是按年-月而不是年-月-日,我该如何解决?

我调查了这个 ,但它没有用,在使用 .all() 之后我仍然得到同样的结果。

我试过这个:

var numByDate = dateDim.group(function(d) {return d['timestamp'];});

它只是 returns 我一个空对象。

所以这是我不熟悉 js 和复制粘贴示例代码的结果...

问题是由于误用了 setDate 方法,

setDate(1) 

只会将数据中的日期设置为第一天,因此分组方法只能使用几个唯一的日期。