gpt4 book ai didi

javascript - 获取计算的直方图 bin 阈值

转载 作者:行者123 更新时间:2023-11-30 11:18:14 28 4
gpt4 key购买 nike

我已正确应用 d3 (v 4.0) 直方图函数对数据数组进行分箱。我的代码如下所示:

var bins = d3.histogram()
.domain([data_points_min, data_points_max])
.thresholds(8)
(data_points);

是否有检索 bin 阈值的函数?我想我可以遍历数组并确定每个 bin 中的最大值,但这会很乏味。我猜一定有一个函数,包括一个产生“令人赏心悦目”的 bin 阈值而不是一些可怕的十进制数的函数。

伪代码应该是这样的:

var bin_thresholds = bin.thresholds();

最佳答案

没有返回每个 bin 的下限和上限的方法(据我所知)。有一种方法可以返回 bin 的数量...

d3.thresholdSturges(values);

...这显然不是您想要的,特别是因为您已经设置了垃圾箱的数量。

但是,您不需要“遍历数组并确定每个 bin 中的最大值”。直方图生成器生成两个属性:

  • x0 - the lower bound of the bin (inclusive).
  • x1 - the upper bound of the bin (exclusive, except for the last bin).

因此,您可以遍历结果以仅获取这些属性。例如:

var data = d3.range(1000).map(() => Math.random() * 20);
var bins = d3.histogram()
.thresholds(8)(data)

bins.forEach(function(d, i) {
console.log("Array number " + i + " --> Lower limit: " + d.x0 + " Upper limit:" + d.x1)
})
<script src="https://d3js.org/d3.v5.min.js"></script>

PS:您不需要设置,因为您只是传递数组的最小值和最大值,这是默认域:

If domain is specified, sets the domain accessor to the specified function or array and returns this histogram generator. If domain is not specified, returns the current domain accessor, which defaults to extent. (emphasis mine)

关于javascript - 获取计算的直方图 bin 阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50720956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com