小编wil*_*mtx的帖子

从datahash中分离数据

我正在制作一个Dimple/D3图表,将缺失天数的数据绘制为0.

date                fruit   count
2013-12-08 12:12    apples  2
2013-12-08 12:12    oranges 5
2013-12-09 16:37    apples  1
                             <- oranges inserted on 12/09 as 0
2013-12-10 11:05    apples  6
2013-12-10 11:05    oranges 2
2013-12-10 20:21    oranges 1
Run Code Online (Sandbox Code Playgroud)

我几乎能够得到nrabinowitz的出色工作答案.

我的数据的时间戳格式为YYYY-MM-DD HH-MM,并且散列+ D3.extent时间间隔(以天为单位)导致每天午夜0点,即使在同一天晚些时候存在数据.

一个几乎解决方案,我发现是.setHours(0,0,0,0)放弃小时/分钟,让所有的数据似乎是从午夜:

...
var dateHash = data.reduce(function(agg, d) { 
 agg[d.date.setHours(0,0,0,0)] = true; 
 return agg; 
}, {});
...
Run Code Online (Sandbox Code Playgroud)

当每天每天只有一个条目时,这可以正常工作,但是当有多个条目将值加在一起时.所以在上面的12/10数据中:苹果:6,橙子:3.

理想情况下(在我看来)我会将绘图数据与datehash以及散列丢弃小时/分钟分开.这会将午夜 - 日期与D3天间隔进行比较,在缺少数据的日子午夜填写0,然后绘制完整小时/分钟的真实点数.

我已尝试data2 = data.slice()setHours,但图表仍然得到午夜点数:

...
// doesn't work, original data …
Run Code Online (Sandbox Code Playgroud)

javascript data-structures d3.js dimple.js

5
推荐指数
1
解决办法
239
查看次数

标签 统计

d3.js ×1

data-structures ×1

dimple.js ×1

javascript ×1