是否可以使用 Highcharts 在面积图上设置 upColor?

问题描述

我有一个面积图,想知道当它上升时是否可以有一个 upcolor。 upColor 选项适用于瀑布图、烛台图。如果可能的话,有人知道面积图吗?以下是我的系列片段。

series: [ {
        upColor: Highcharts.getoptions().colors[2],data: AreaData,type: 'area',name: 'NAV',id: 'GG'
           
        }
    ],[1483074000000,529565.95]
 [1485838800000,581409.01]
 [1488258000000,635260.08]
 [1490932800000,664102.35]
 [1493352000000,638819.73]
 [1493524800000,638819.73]
 [1494475200000,638911]
 [1494561600000,689111.15]
 [1494820800000,717497.05]
 [1494907200000,720143.97]
[1494993600000,724890.17]

解决方法

根据评论 - 区域系列没有实现 upColor 功能来更改增加数据的颜色。在这种情况下可以做的是使用 zones 功能填充区域的特定部分。

演示:https://jsfiddle.net/BlackLabel/73pm4awq/

events: {
  load() {
    const chart = this,series = chart.series[0],points = series.points,zones = [];

    series.points.forEach((p,i) => {
      if (points[i + 1] && p.y < points[i + 1].y) {
        zones.push({
          value: points[i + 1].x,color: 'green'
        })
      } else {
        zones.push({
          value: p.x,color: 'red'
        })
      }
    });
    series.update({
      zones: zones
    })
  }
}

API:https://api.highcharts.com/highcharts/series.line.zones

API:https://api.highcharts.com/class-reference/Highcharts.Series#update

,

我修改了@Sebastian 的回复,将每个点与系列中的第一个点进行比较。 “自成立以来”

    events: {
  load() {
    const chart = this,i) => {
      if ( points[0].y < points[i].y ) {
        zones.push({
          value: points[i].x,color: 'green'
        })
      } else {
        
        zones.push({
          value: p.x,color: 'red'
        })
      }
    });
    series.update({
      zones: zones
    })
  }
}

除了 zoneAxis 属性 series.zoneAxis 之外,“定义应用区域的轴”。根据文档。

zoneAxis:'x'