更改HighCharts plotLine-value和-label

时间:2017-01-24 16:44:03

标签: highcharts

我已经实施了一条显示所有值的平均值的情节线:

"yAxis": {
  plotLines: [{
     color: 'red',
     value: 22, 
     width: '1',
     label: {
        text: 'Average: 22'
     }
  }]
},

我想更改legendItemClick的平均值。是否可以以编程方式更改一些plotLine属性?

到目前为止我尝试的是:

plotOptions: {
  series: {
     events: {
        legendItemClick: function (event) {
           var average = 15;
           event.target.chart.userOptions.yAxis.plotLines[0].value = average;
           event.target.chart.userOptions.yAxis.plotLines[0].label.text = 'Average: ' + average;
        }
     },
  }
},

图表中的值和标签文字没有变化。我也尝试redraw the chart,但它仍然没有改变情节线。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

我现在已经找到了一个可接受的答案来回答我自己的问题:

var average = 15;
event.target.chart.yAxis[0].removePlotLine('average');
event.target.chart.yAxis[0].addPlotLine({
  id: 'average',
  color: 'red',
  width: 1,
  value: average,
  zIndex: 200,
  label: {
     text: 'Average: ' + average
  }
});

我必须为plotLine指定一个ID,销毁它并创建一个新的。