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

Create a d3.js histogram based on already given frequencies

本文关键字:一个 d3 直方图 js 创建 频率      更新时间:2024-06-07

我已经实现了d3.js直方图,类似于这个例子。这工作得很好,但由于某些用例中值的数量,我想对数据进行预处理,并将必要的频率传递给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;但仍然允许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);

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