我想让用户灵活地选择日期时间范围并查看该期间的点击次数图表。范围可以是 1 年、6 个月、1 个月、1 周、1 天或过去 6 小时……在任何时间点都恰好有 1 次点击。所以,我的数据集是:
Time Click
2012-01-01 01:00:00 1
2012-01-01 02:00:00 1
2012-01-01 03:10:00 1
2012-01-01 03:20:01 1
2012-06-02 11:00:00 1
2012-12-01 01:00:00 1
2013-05-01 12:00:00 1
该图应该能够根据可用的数据调整它的 x 轴。例如,如果我们正在检查天数据,那么它应该显示 HH:00 范围,如果我们正在寻找一周数据,那么它应该像周一-周二-周三这样的范围。
我的示例代码如下所示:
`chart.xAxis.showMaxMin(false).tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
chart.yAxis.tickFormat(d3.format(',.2f'));
d3.select('#chart1 svg')
.datum(jsonData)
.call(chart);`
如何处理数据点的聚合?我是否必须为数据集提供聚合或图表可以通过提供一些功能自行完成。
更新
我尝试使用汇总,发现它现在为我的数据提供了一些聚合。
rollup = d3.nest().key(function(d) {
return (new Date(+d[0])).getMonth();
}).rollup(function(d) {
return d3.sum(d, function(e) { return +e[1]; });
}).entries(jsonDataValues)
.map(function(d) {data.push([d.key,d.values])});
它按月份汇总数据。需要对其进行修改以使其更灵活,以便针对给定范围进行自我调整(可能是我的朋友在这里?)