Javascript 如何获得直方图x轴的对数值

Javascript 如何获得直方图x轴的对数值,javascript,html,css,math,audio,Javascript,Html,Css,Math,Audio,这是math/javascript。所以,在javascript中,我使用div为条绘制直方图,并使用left-margin属性对条进行x间距。所以我想用对数的方式来缩放这个间距 不是这样: 酒吧----酒吧----酒吧----酒吧----酒吧----酒吧----酒吧 但是像这样的: 吧台------吧台------吧台------吧台------吧台 请注意,div(条变量)的总数可能会更改(不是在运行时)。 我很难找到x对数值,每个I从0到条,适当的边距值与100%容器IV宽度相关 for

这是math/javascript。所以,在javascript中,我使用div为条绘制直方图,并使用left-margin属性对条进行x间距。所以我想用对数的方式来缩放这个间距

不是这样:
酒吧----酒吧----酒吧----酒吧----酒吧----酒吧----酒吧

但是像这样的:
吧台------吧台------吧台------吧台------吧台

请注意,div(变量)的总数可能会更改(不是在运行时)。 我很难找到x对数值,每个I从0到,适当的边距值与100%容器IV宽度相关

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

非常感谢您的帮助。

设置一些
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)
}

那么,你不能只使用
Math.log
(或者
Math.log10
)吗?它们将返回不适合%值的小数字,因此可能会添加一个缩放倍增
.css(“left”,(Math.log(i)*scale)+“%”
应该可以做到这一点。