当前位置: 代码迷 >> JavaScript >> Highcharts在使用jquery加载时“单击”范围,或在加载时使用addSeries
  详细解决方案

Highcharts在使用jquery加载时“单击”范围,或在加载时使用addSeries

热度:86   发布时间:2023-06-06 09:44:22.0

我正在使用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以了解其当前工作方式: :

load事件中,您可以使用fireEvent方法触发afterSetExtremes事件。 另外,为了提高性能,可以在除第一个调用之外的所有调用中将addSeriesredraw参数设置为false

    chart: {
        ...,
        events: {
            load: function() {
                Highcharts.fireEvent(
                    this.xAxis[0],
                    'afterSetExtremes', {
                        redraw: true
                    }
                );
            }
        }
    },

现场演示: :

API参考:

  相关解决方案