8

我试图让我的用户可以将最大 plotLine 添加到图表中,并在绘图超出该线时让它更改图表的背景颜色。我似乎无法获得更新情节线的方法。我试过了:

chart.yAxis[0].update({
    plotLines: [{
        id: 'limit-max',
        color: 'blue',
        dashStyle: 'LongDashDot',
        width: 1,
        value: 45000,
        zIndex: 0
    }]
});

但我得到了错误:

类型错误:a 未定义

...dBands,function(a){a.render()});n(this.series,function(a){a.isDirty=!0})},setCat...

highcharts.js(第 136 行)

4

4 回答 4

5

您只能销毁并创建新的 plotLins,因为 update() 函数不可用。

于 2013-05-22T10:08:16.820 回答
3

只需添加此代码,然后您就可以使用 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();
        }
    }

于 2015-07-13T15:27:25.860 回答
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();
于 2014-08-19T22:38:41.510 回答
0

我试图为plotLine分配一个ID,

首先完全删除情节线removePlotLine(id),然后将其添加回来addPlotLine。这对我很有效。

function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}
于 2017-08-14T05:37:38.833 回答