首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对数范围

对数范围
EN

Stack Overflow用户
提问于 2014-03-19 15:33:14
回答 2查看 1.8K关注 0票数 1

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

1,10,100,1000,10000

这意味着第一个垃圾桶将包括花费1-10,第二个11-10等等的观测,最后一个是+10.000。

代码语言:javascript
运行
复制
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,但它似乎不像预期的那样工作。

EN

Stack Overflow用户

发布于 2014-03-19 15:54:34

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

代码语言:javascript
运行
复制
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没有经验,所以我不能帮你。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22510760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档