对数轴未显示小数字的适当刻度

时间:2018-02-09 21:40:45

标签: highcharts highstock

前言,我在这里使用扩展对数函数来表示负数和小数:

/**
* Custom Axis extension to allow emulation of negative values on a 
logarithmic
* Y axis. Note that the scale is not mathematically correct, as a true
* logarithmic axis never reaches or crosses zero.
*/
(function (H) {
    // Pass error messages
    H.Axis.prototype.allowNegativeLog = true;

    // Override conversions
    H.Axis.prototype.log2lin = function (num) {
        var isNegative = num < 0,
            adjustedNum = Math.abs(num),
            result;
        if (adjustedNum < 10) {
            console.log('adjustedNum: ', adjustedNum);
             adjustedNum += (10 - adjustedNum) / 10;
        }
        result = Math.log(adjustedNum) / Math.LN10;
     if (adjustedNum < 10) console.log('result: ', result);
        return isNegative ? -result : result;
    };
    H.Axis.prototype.lin2log = function (num) {
        var isNegative = num < 0,
            absNum = Math.abs(num),
            result = Math.pow(10, absNum);
        if (result < 10) {
            result = (10 * (result - 1)) / (10 - 1);
        }
        return isNegative ? -result : result;
    };
}(Highcharts));

因此,如果我的y轴的dataMin为0.22,dataMax为2.34,则使用对数刻度,我得到的唯一滴答是[0,1]指定0和10,图表的底部和顶部,中间没有刻度线。

1)有没有办法可以在日志图表中指定我想要的滴答数(tickAmount:5不起作用)? 2)有没有办法可以收紧蜱落下的范围? (就像在这种情况下,它设置轴的数据值在0到10之间,即使我的数据系列只在0.22和2.34之间)。

谢谢!

1 个答案:

答案 0 :(得分:0)

<强> 1

tickPositionstickPositioner选项可让您控制滴答滴答的确切位置。

<强> 2

您可以尝试调整tickInterval选项:http://jsfiddle.net/BlackLabel/8v3xuyot/

  yAxis: {
    type: 'logarithmic',
    tickInterval: 0.2
  }

API参考: