我试图让我的用户可以将最大plotLine添加到图表中,如果图表超出该行,则可以更改图表的背景颜色。我似乎无法获得更新情节线的方法。我试过了:
chart.yAxis[0].update({
plotLines: [{
id: 'limit-max',
color: 'blue',
dashStyle: 'LongDashDot',
width: 1,
value: 45000,
zIndex: 0
}]
});
但是我收到了错误:
TypeError:a未定义
... dBands,函数(){a.render()}); N(this.series,函数的(a){!a.isDirty = 0})},... setCat
highcharts.js(第136行)
答案 0 :(得分:5)
您只能销毁和创建新的plotLins,因为update()函数不可用。
答案 1 :(得分:2)
只需添加此代码,然后就可以使用plotline.update方法
//Add support for update method
Highcharts.PlotLineOrBand.prototype.update = function (newOptions){
var plotBand = this;
Highcharts.extend(plotBand.options, newOptions);
if (plotBand.svgElem) {
plotBand.svgElem.destroy();
plotBand.svgElem = undefined;
plotBand.render();
}
}
答案 2 :(得分:1)
这对我有用http://jsfiddle.net/tx1kt0bj/2/
var plotBand = tempAxis.plotLinesAndBands[0];
$.extend(plotBand.options, {
color: '#000',
to: 10,
from: 2
});
plotBand.svgElem.destroy();
plotBand.svgElem = undefined;
plotBand.render();
答案 3 :(得分:0)
我试图为plotLine分配一个id,
首先通过removePlotLine(id)
完全删除情节线,然后将其添加回addPlotLine
。它对我很有用。
function upgradePlotLine(new_line) {
chart.yAxis[0].removePlotLine('my_line');
chart.yAxis[0].addPlotLine(new_line);
}