Javascript Highcharts动态添加/更改yAxis绘图线

Javascript Highcharts动态添加/更改yAxis绘图线,javascript,highcharts,Javascript,Highcharts,我试图让我的用户能够向图表中添加一条最大绘图线,并在绘图超过该线时让它更改图表的背景色。我似乎找不到更新绘图线的方法。我试过: chart.yAxis[0].update({ plotLines: [{ id: 'limit-max', color: 'blue', dashStyle: 'LongDashDot', width: 1, value: 45000, zIndex: 0

我试图让我的用户能够向图表中添加一条最大绘图线,并在绘图超过该线时让它更改图表的背景色。我似乎找不到更新绘图线的方法。我试过:

chart.yAxis[0].update({
    plotLines: [{
        id: 'limit-max',
        color: 'blue',
        dashStyle: 'LongDashDot',
        width: 1,
        value: 45000,
        zIndex: 0
    }]
});
但我得到了一个错误:

TypeError:a未定义

…dband,函数(a){a.render()});n(this.series,函数(a){a.isDirty=!0}),setCat

highcharts.js(第136行)


因为update()函数不可用,所以只能销毁和创建新的绘图线。

以下是对我有效的方法


只需添加此代码,然后就可以使用plotline.update方法

//添加对更新方法的支持
Highcharts.PlotLineOrBand.prototype.update=函数(新选项){
var plotBand=此;
Highcharts.extend(plotBand.options、newOptions);
if(plotBand.svgElem){
plotBand.svgElem.destroy();
plotBand.svgElem=未定义;
plotBand.render();
}

}
我试图给绘图线分配一个id

首先通过
removePlotLine(id)
完全删除打印线,然后通过
addPlotLine
将其重新添加。这对我很有用

function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}

因为我找不到我使用的代码,所以我只留下一条评论。尝试删除绘图线,然后使用新值重新添加它。这就成功了-我刚开始时没有使用绘图线,然后使用“更新”来添加它。我从源代码中删除了绘图线,并允许用户在创建图表后添加它。您可以使用addPlotLine函数来完成此操作。谢谢,这非常有用。只需传入需要更新的属性,它就会工作:
chart.series[0].xAxis.plotLinesAndBands[0].update({“color”:“#eeeeee”})
function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}