javascript - HighStock 中 setExtremes 和 afterSetExtremes 之间的区别

标签 javascript charts highcharts

我是 Highchart 的新手,我对 setExtremesafterSetExtremes 有疑问,我不确定我是否理解它们之间的区别。

这是一个场景: setExtremes 回调函数中有一个从服务器检索 json 数据的函数。我将使用 setExtremes 预先设置图表范围(例如 2015-01-01 到 2015-05-01),这样每次设置图表范围时,都会调用此函数来获取来自服务器的新数据,但从服务器获取的数据可能具有不同的日期范围(例如 2015-03-01 到 2015-05-04)。我想根据数据的新范围调整图表范围。但是如果我在setExtremes回调函数中再次使用setExtremes,就会出现无限循环。

http://api.highcharts.com/highstock#xAxis.events.afterSetExtremes

this event fires after the final min and max values are computed

所以我想这会解决我的问题,但我不确定具体如何解决?

最佳答案

差异如 API 引用中所述:可以使用 Not Acceptable 范围调用 setExtremes - 在 afterSetExtremes 范围得到纠正。

您可以扩展 Highcharts 以更改最小值和最大值,然后将值发送到原始 setExtremes 函数。 Highcharts 的延迟加载演示使用动态加载数据,因此让我们向 jsFiddle 添加包装器。

示例:http://jsfiddle.net/yu6ztw7h/

(function (H) {
    H.wrap(H.Axis.prototype, 'setExtremes', function (proceed) {
        var newMin = arguments[1],
            newMax = arguments[2];

        arguments[1] = (newMin+newMax)/2;

        // Run original proceed method
        proceed.apply(this, [].slice.call(arguments, 1));
    });
}(Highcharts));

在这种情况下,范围起始值 (newMin) 将更改为原始范围的一半。您可以在包装器中加载数据,检查其极端情况,将更改后的值传递给原始方法。

关于javascript - HighStock 中 setExtremes 和 afterSetExtremes 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551390/

相关文章:

javascript - Highcharts 将 x Axis 上的第一个和最后一个刻度调整为直接值

Excel:如何将自定义网格线添加到图表中?

javascript - 如何在 Highcharts 同步图表中仅显示一个 x Axis 标签

javascript - 居中旋转的 Div

javascript - 使用 javascript 音频 api 创建均衡器

javascript - 嵌套 json 对象中数组过滤器的使用

javascript - 为什么 CSS 和 JS 没有加载?

c# - 在 mschart 中添加数据点时使用双标签

javascript - 如何在鼠标单击时显示不同 div 中的不同文本?

javascript - highcharts:将 useUTC=true 毫秒转换为 javascript Date 对象