Highcharts负对数刻度解决方案停止工作

tjvv9vkg  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(211)

我为一个带有负数的对数刻度的图形生成了图形代码。结果如下所示。
我创建了一个处理负值的函数,它运行得很好。但是有些日子以来,它不再运行了。所以我根据this article调整了代码,但是它仍然不工作。请参见我的JSFidddle

(function (H) {
    H.addEvent(H.Axis, 'afterInit', function () {
        const logarithmic = this.logarithmic;

        if (logarithmic && this.options.custom.allowNegativeLog) {

            // Avoid errors on negative numbers on a log axis
            this.positiveValuesOnly = false;

            // Override the converter functions
            logarithmic.log2lin = num => {
                const isNegative = num < 0;

                let adjustedNum = Math.abs(num);

                if (adjustedNum < 10) {
                    adjustedNum += (10 - adjustedNum) / 10;
                }

                const result = Math.log(adjustedNum) / Math.LN10;
                return isNegative ? -result : result;
            };

            logarithmic.lin2log = num => {
                const isNegative = num < 0;

                let result = Math.pow(10, Math.abs(num));
                if (result < 10) {
                    result = (10 * (result - 1)) / (10 - 1);
                }
                return isNegative ? -result : result;
            };
        }
    });
}(Highcharts));

我得到了一个错误10,但是that description中的示例没有任何结果。
这是怎么回事,我如何修复?

nc1teljy

nc1teljy1#

很明显,Highcharts对轴的定义做了修改,Y轴的定义为:

yAxis:
{
  type: 'logarithmic',
  allowNegativeLog: true,
  title:
  {
    text: 'Regen Spreiding ( mm)'
  },
  min: 0.0,
  max: 25.40
},

并且现在要求它是(至少它是与此修改一起工作的):

type: 'logarithmic',
  custom:
  {
    allowNegativeLog: true,
  },

注:这与修改后的函数H一起使用,该函数H现在以以下形式开始:

H.addEvent(H.Axis, 'afterInit', function () {

如果你像我一样登陆这里,请查看Highcharts的this JSFiddle,并提供工作演示。

相关问题