我正在使用 afterSetExtremes 事件来检索最小和最大 x 和 y 坐标。然后,我在范围选择时添加该系列。问题是该系列在加载时不显示。最简单的解决方案是模拟范围选择在图表加载时。这可能吗?如果不可能,是否可以在加载时添加相同的系列?
xAxis: {
events: {
afterSetExtremes: function(e) {
var points = e.target.series[0].points,
minPoint = points[1],
maxPoint = points[points.length - 1]
if(minPoint.y < maxPoint.y)
{
var series_color = 'green';
}
else{
series_color = 'red';
}
chart.addSeries({
data:[{x:minPoint.x,y:minPoint.y},{x:maxPoint.x,y:maxPoint.y}],
color: series_color,
dashStyle: 'shortdot',
id: 'trend'
});
while(chart.series.length > 3)
{
chart.get('trend').remove();
}
}
}
}
查看 jsfiddle 以了解它当前的工作方式:http://jsfiddle.net/kd3aLp6m/
最佳答案
在load
事件中,您可以使用fireEvent
方法来触发afterSetExtremes
事件。此外,为了提高性能,您可以在除第一个调用之外的所有调用中将 addSeries
方法中的 redraw
参数设置为 false
。
chart: {
...,
events: {
load: function() {
Highcharts.fireEvent(
this.xAxis[0],
'afterSetExtremes', {
redraw: true
}
);
}
}
},
现场演示:http://jsfiddle.net/BlackLabel/bdnho9uc/
API 引用:
https://api.highcharts.com/highcharts/chart.events.load
https://api.highcharts.com/class-reference/Highcharts#.fireEvent
关于javascript - Highcharts "click"使用 jquery 加载范围,或加载时 addSeries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968102/