高图表根据y轴的值更改十字准线颜色

时间:2020-04-28 10:15:36

标签: javascript highcharts

我想根据值更改十字准线的颜色。我正在这样做,但是没有用。

xAxis: {
            type: 'datetime',
            crosshair: {
            threshold: 1,
            negativeColor: 'green',
            color: 'red',
            width: 1.5,
            snap: false
            }

因此,如果y轴的值小于1,我希望十字准线的颜色为绿色。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您尝试设置的选项在API中不存在-https://api.highcharts.com/highcharts/xAxis.crosshair.color

我认为,最简单的方法是使用className属性,并在 tooltip.formatter 回调中动态更改十字线样式。

演示:https://jsfiddle.net/BlackLabel/be9jqh6s/

  tooltip: {
    formatter(tooltip) {
      let chart = this.series.chart,
        crosshair = document.getElementsByClassName('custom-crosshair');

      if (crosshair[0]) {
        if (this.x > 4) {
          crosshair[0].style.stroke = 'green'
        } else {
          crosshair[0].style.stroke = '#cccccc'
        }
      }
      return tooltip.defaultFormatter.call(this, tooltip);
    }
  },

API:https://api.highcharts.com/highcharts/tooltip.formatter