根据已经给定的频率创建d3.js直方图

时间:2013-12-11 03:58:15

标签: javascript d3.js

我已经实现了d3.js直方图,类似于this example。这很好用,但是由于某些用例中的值的数量,我想预处理数据并将必要的频率传递给d3.layout.histogram()。

而不是值[13, 5, 88, 4]我会有以下内容:

{ "0-5"   : 2,
  "5-10"  : 0,
  "10-15" : 1,
   ...
}

我想这会省去我对

的号召
var data = d3.layout.histogram()
    .bins(x.ticks(20))
    (values);

但我不确定如何正确整合。我仍然需要d3.layout函数来计算bin的宽度。箱子的数量将通过给定频率的属性数量给出。任何提示?

1 个答案:

答案 0 :(得分:3)

这个答案假定你想动态传递垃圾箱;但仍允许频率计算由layout.histogram

完成

您可以将数组传递给histogram.bins方法。像这样:

// Generate a histogram using twenty uniformly-spaced bins.
var values= [13,5,88,4];
var data = d3.layout.histogram()
    .bins(d3.range(0,100,6))
    (values);

您甚至可以通过找到d3.range()数组的minmax来参与调用values。这样可以节省您创建关联数组以查找频率的时间