HighCharts动态高/低极限标记

时间:2015-01-28 15:31:38

标签: highcharts

我想在线条系列的y轴上的最高点和最低点值上显示标记。我知道如何手动添加标记但是想要动态添加/删除标记,如果缩放/平移或其他任何改变可见的高/低点是否有办法知道这个和新的高/低添加/删除标记

之前的SO question要求对此模型图片提出类似的建议:http://cl.ly/image/1f0m3l241e2S。答案虽然是提供了数据源,但不会通过缩放/平移或流数据进行更新。

我可能自己循环遍历数据源(2D数组),找到高/低并设置它们,如果我只能循环遍历数组的缩放部分,则在缩放/平移事件上执行相同操作。虽然如果我将dataGrouping设置为true,我迭代的值数组可能无法正确匹配?

1 个答案:

答案 0 :(得分:1)

您可以通过

执行此操作

1)使用getExtremes()方法获取高/低数据点

2)使用afterSetExtremes()事件捕获缩放事件并重新计算

一些可能相关的帖子:

您可以在函数中设置它,循环访问数据并查找与高/低数据点的匹配,然后从中创建一个散点图系列,标记图表上的高点/低点。

在图表加载和缩放上标记点的示例:

函数样本,获取与标记匹配高/低数据点的相关x值:

$.each(chart.series[0].data, function(i,point) {
    if(point.y == maxData && point.x <= maxTime && point.x >= minTime) {
        xMax = point.x;
    }
    if(point.y == minData && point.x <= maxTime && point.x >= minTime) {
        console.log(point);

        xMin = point.x;
    }
});

<强> {{UPDATE:

重要的是要注意这个问题:

如果要使用列或区域系列,则需要从系列对象而不是getExtremes()方法获取min和max,因为图表在内部将dataMin设置为0以用于这些系列类型。 / p>

足够容易相应地调整功能。

在类似的说明中,如果您要使用没有明确y值的boxplot,columnrange或其他类似系列,您也必须相应地更新。