以 2 为底的 Highcharts 对数轴

ffa*_*uet 1 highcharts

我必须使用 Highcharts 库渲染图表,但我需要 y 轴是对数的。这很容易通过将 yAxis 类型设置为logarithmic.

但是,轴上的刻度是 10 次等距的幂:0.01, 0.1, 1, 10, 100, ...

我想要完全相同的东西,但以 2 为底:等距刻度,轴上写的值为 2 的幂:0.5、1、2、4、8、16、...

如果刻度数和最小值和最大值可以根据数据进行调整(如常规的以 10 为底的对数刻度),那就太好了。

有什么建议 ?在浏览网页查看对数场景后,我没有发现与该问题相关的任何内容。

谢谢!

Hal*_*and 5

这将是一种快速的方法(JSFiddle):

Highcharts.Axis.prototype.log2lin = function (num) {
    return Math.log(num) / Math.LN2;
};

Highcharts.Axis.prototype.lin2log = function (num) {
    return Math.pow(2, num);
};
Run Code Online (Sandbox Code Playgroud)

Axis.prototype.getLogTickPositions如果您需要minorTickInterval支持,您可能需要重写。