gpt4 book ai didi

javascript - 对数范围

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

我有一个非常稀疏的数据集,我想将它绘制成具有对数刻度的直方图。我希望 X 轴看起来类似于:

[1, 10, 100, 1000, 10000]

这意味着第一个 bin 将包含成本为 1-10 的观测值,第二个 bin 为 11-10 等等,最后一个为 +10.000。

function (pow, min, max) {
var range = [];
for (i = min; i < max; i++) {
range.push(Math.pow(pow, i));
}
return range;
}

我能够生成给定的 10 的幂数组。现在,我想要将一组连续值映射到该数组,这意味着:

[1, 23, 2, 105, 2000, 30000]

将输出为:

[1, 10, 1, 100, 1000, 10000]

我尝试过使用 d3.scale.threshold,但它似乎并没有像预期的那样工作。

最佳答案

如果您只是在寻找一个映射您的值的函数,您所需要的只是一些简单的数学:

function f(x) {
return Math.pow(10, Math.floor(Math.log(x) / Math.log(10)));
}

alert( f(1) );
alert( f(23) );
alert( f(2) );
alert( f(105) );
alert( f(2000) );
alert( f(30000) );

我没有使用 d3 的经验,所以我无法在这方面为您提供帮助。

关于javascript - 对数范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510760/

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