javascript - 如何更改 Highcharts 中的区域线颜色

标签 javascript highcharts

如果折线图上的某个点低于目标,我试图将通向该点的线设置为“红色”,而不是相反(直到到达该点为止为绿色)。见下图:

enter image description here

所以我想说的是,Mar-19 点是绿色的,但从 mar-19 到 apr-19 的线应该是红色。从 apr-19 到 May-19 的线路应该是绿色的。 5月-19日到6月的线路应该是红色的等等......

这是我用来生成系列和区域的 json:

enter image description here

这是图表的代码(reactjs):

const options = {
      chart: {
        height: 280
      },
      title: {
        text: null
      },

      subtitle: {
        text: null
      },

      xAxis: settings.xAxis,

      yAxis: {
        title: {
          text: null
        },
        labels: {
          formatter: function() {
            let value = '';
            switch (settings.value_type) {
              case 'Percentage':
                value = `${this.value + '%'}`;
                break;
              case 'Numeric':
                value = `${this.value}`;
                break;
              case 'Currency':
                value = `${'$' + this.value}`;
                break;
              default:
                value = '';
                break;
            }
            return value;
          }
        },
        min: 0
      },

      legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'middle',
        enabled: false
      },

      plotOptions: {
        series: {
          label: {
            connectorAllowed: false
          },
          pointStart: 0
        }
      },

      series: series,
      responsive: {
        rules: [
          {
            condition: {
              maxWidth: 500
            },
            chartOptions: {
              legend: {
                layout: 'horizontal',
                align: 'center',
                verticalAlign: 'bottom'
              }
            }
          }
        ]
      },
      exporting: { enabled: false },
      credits: { enabled: false }
    };

最佳答案

要使标记点采用前一个区域的颜色,您可以在每个 value 属性的小数点后添加一个小值:

series: [{
    data: [23, 42, 52, 47, 64],
    zoneAxis: 'x',
    zones: [{
        value: 1.00001,
        color: 'green'
    }, {
        value: 2.00001,
        color: 'red'
    }, {
        value: 3.00001,
        color: 'green'
    }, {
        color: 'red'
    }]
}]

现场演示: http://jsfiddle.net/BlackLabel/8ga2ce4j/

API引用: https://api.highcharts.com/highcharts/series.line.zones.value

关于javascript - 如何更改 Highcharts 中的区域线颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559816/

相关文章:

javascript - 事件监听器未绑定(bind)

javascript 回调无法以异步方式工作

javascript - 如何在用户单击饼图时隐藏其余区域?

javascript - 使用默认颜色更改 Highcharts 中列的颜色

javascript - $.each 只显示一个系列 Highcharts

javascript - 如何带参数转发

javascript - JSONP请求响应中无限空for循环的目的是什么?

javascript - jQuery - 无法获取 append 元素的属性

javascript - Highcharts 标签被切断

javascript - Highcharts - 默认以外的动画