Highstock – 单线系列 – 基于触发器动态创建标记

我使用Highstock – 单线系列来绘制数据。 http://www.highcharts.com/stock/demo/basic-line 。 我想知道如何根据触发器在某些点上创建标记。如果在y轴上发生突然增加,我想在该点上创建一个标记(即突然增加发生在460到470之间,我想创建一个标记470)。我想在客户端进行。我怎么能这样做。任何人都可以帮忙。附上截图,理想我需要什么。我想在截图中突出显示的红色圆圈上创建标记。 在此处输入图像描述

为花这么多时间而道歉。 我想彻底为你提供答案,然后还有工作:-)。 这是一个有效的演示: JSFIDDLE

屏幕截图:

在此处输入图像描述

JS:

$(function() { $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function(data) { // Create the chart var myChart = $('#container').highcharts('StockChart', { rangeSelector : { selected : 1 }, chart:{ events:{ load: function(){ var l = this.series[0].points.length; var p = this.series[0].points[l - 1]; var i=0; for(i = 1; i 10 ){ console.log(this.series[0].points[i].y); this.series[0].points[i].update({ marker: { enabled: true } }); } } } } }, title : { text : 'AAPL Stock Price' }, series : [{ name : 'AAPL', data : data, tooltip: { valueDecimals: 2 } }] }); }); }); 

启用dataGrouping时为点设置标记可能有点问题。 它需要使用:

 chart.series[0].data[index].update({ marker: { enabled: true } }); 

但是如果你有很多分数,那么data将是一个空数组或将具有分组数据。

这就是为什么我想建议另一个解决方案 – 使用标志或分散系列。 然后你将只添加空系列,并在触发器上添加/删除点。