我正在使用 Highstock - 单线系列来绘制数据。http://www.highcharts.com/stock/demo/basic-line。我想知道如何根据触发器在某些点上创建标记。如果 y 轴突然增加,我想在该点上创建一个标记(即从 460 到 470 突然增加,我想在470)。我想在客户端级别做。我该怎么做。任何人都可以帮助解决这个问题。附加屏幕截图,理想情况下我需要什么。我想在屏幕截图中突出显示的红色圆圈上创建标记。
问问题
737 次
2 回答
1
抱歉花了这么多时间。我想彻底地为您提供答案,然后还有工作:-)。这是一个工作演示: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<l ; i++){
if( this.series[0].points[i].y - this.series[0].points[i-1].y > 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
}
}]
});
});
});
于 2013-08-21T13:48:41.257 回答
0
启用 dataGrouping 时为点设置标记可能有点问题。它需要使用:
chart.series[0].data[index].update({
marker: {
enabled: true
}
});
但是,如果您将有很多点,data
将是一个空数组或将有分组数据。
这就是为什么我想建议另一种解决方案 - 使用标志或分散系列。然后您将只添加空系列,并在触发时添加/删除点。
于 2013-08-21T11:08:01.083 回答