如何将x轴的对数值变为直方图

时间:2017-05-01 12:36:09

标签: javascript html css math audio

这是数学/ javascript之一。因此,在javascript中,我使用div作为条形图进行直方图,并使用左边距属性对它们进行x间距。所以我希望以对数方式缩放这个间距。

不是这样的:
酒吧---- ----棒杆---- ----巴巴----酒吧

但是这样的事情:
酒吧---------酒吧------ ----巴巴 - 棒杆

请注意,div的总数( bars 变量)可能会更改(不在运行时)。 我很难找到 x 对数值,对于每个i从0到,并且正确的边距值与100%containerDiv宽度相关。

for (var i = 0; i < bars; i++) {
   $("<div/>").css("left", i * x  + "%").appendTo(containerDiv);
}

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

设置一些maxLeft变量,然后就可以使用这样的函数

const maxLeft = 100;
f = (i) => maxWidth * Math.log(i+1) / Math.log(bars.length)

或者如果您使用的是较旧的JavaScript版本

function (i) {
    var maxLeft = 100;
    return maxLeft * Math.log(i+1) / Math.log(bars.length)
}