我已经实现了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的宽度。箱子的数量将通过给定频率的属性数量给出。任何提示?
答案 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()
数组的min
和max
来参与调用values
。这样可以节省您创建关联数组以查找频率的时间