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);
}