Highcharts:如何根据正斜率或负斜率为样条曲线指定不同的颜色?

Highcharts:如何根据正斜率或负斜率为样条曲线指定不同的颜色?,highcharts,Highcharts,我正在评估一个项目的Highcharts,它似乎缺少一个我需要的内置功能 对于样条曲线,如果坡度为正,则需要指定一种颜色,如果坡度为负,则需要指定另一种颜色,如下所示: 在我花时间学习API之前,了解一下这是否可行会很有帮助。非常感谢提供一个工作示例。您可以使用动态计算的分区,例如: events: { load: function() { let points = this.series[0].points, zones = [], color;

我正在评估一个项目的Highcharts,它似乎缺少一个我需要的内置功能

对于样条曲线,如果坡度为正,则需要指定一种颜色,如果坡度为负,则需要指定另一种颜色,如下所示:


在我花时间学习API之前,了解一下这是否可行会很有帮助。非常感谢提供一个工作示例。

您可以使用动态计算的分区,例如:

events: {
  load: function() {
    let points = this.series[0].points,
      zones = [],
      color;

    function addZone(value, color) {
      zones.push({
        value: value,
        color: color
      });
    }

    points.forEach(function(p, i) {
      if (points[i - 1]) {
        if (p.y >= points[i - 1].y) {

          if (color && color !== 'green') {
            addZone(points[i - 1].x, 'red');
          }

          color = 'green';

        } else if (p.y <= points[i - 1].y) {
          if (color && color !== 'red') {
            addZone(points[i - 1].x, 'green');
          }

          color = 'red';
        }
      }

      addZone(p.x, color);
    });

    this.series[0].update({
      zones: zones
    });
  }
}
事件:{
加载:函数(){
设点=此。系列[0]。点,
分区=[],
颜色
函数addZone(值、颜色){
推({
价值:价值,
颜色:颜色
});
}
点。forEach(函数(p,i){
如果(第[i-1]点){
如果(p.y>=点[i-1].y){
如果(颜色和颜色!==“绿色”){
addZone(点[i-1].x,‘红色’);
}
颜色='绿色';

}否则如果(p.y正是我所追求的。你为我节省了很多时间的斗争-非常感谢!我很难在图表上实现这一点,当时我正在将样条曲线系列叠加在烛台系列上。出于我不想假装理解的原因,只有当样条曲线系列在系列数组中的烛台系列之上时,它才起作用。如果首先是tick series,它运行时没有错误,但没有应用颜色。这是可行的,但我更愿意了解发生了什么。有人能解释一下吗?这适用于较小的数据集,但对于覆盖有样条线的80k烛台的数据集,即使在功能强大的工作站上,页面在完成之前也会冻结。看起来它很有用对于更大的图表来说,太需要资源了。您好@Tullochgorum,如果您在
load
事件中正确地引用了该系列,那么一切都可以正常工作:请检查此插件的性能测试:谢谢-这是一个假设问题,因为代码现在正在工作。