Highcharts дынамічна дадаваць/змяняць YAxis сюжэтныя

Я спрабую зрабіць гэта магчымым для маіх карыстальнікаў, каб дадаць максімальную сюжэтныя да графікі і гэта змяніць колер фону дыяграмы, калі графік ідзе вышэй гэтай лініі. Я не магу здацца, каб атрымаць метад, каб абнавіць сюжэтныя. Я спрабаваў:

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

але я атрымліваю паведамленне пра памылку:

<�Р> TypeError: а не вызначана      <�Р> ... dBands, функцыя (а) {a.render ()}); п (this.series, функцыя (а) {! A.isDirty = 0})}, setCat ... </р>      <�Р> highcharts.js (радок 136) </р>
7
Так як я не магу знайсці код, які я выкарыстаў, я проста пакінуць каментар. Паспрабуйце выдаліць Сюжэтная затым паўторна дадаць яго з новым значэннем.
дададзена аўтар wergeld, крыніца
Гэта зрабіў трук - я проста не пачаць з аднаго, а затым выкарыстоўваецца абнаўленне, каб дадаць яго.
дададзена аўтар jbolanos, крыніца
Гэта зрабіў трук - я проста не пачаць з аднаго, а затым выкарыстоўваецца абнаўленне, каб дадаць яго.
дададзена аўтар jbolanos, крыніца
Гэта зрабіў трук - я проста не пачаць з аднаго, а затым выкарыстоўваецца абнаўленне, каб дадаць яго.
дададзена аўтар jbolanos, крыніца

10 адказы

Вы можаце толькі разбураць і ствараць новы plotLins, таму што функцыя абнаўлення() не даступная.

5
дададзена
Я раздзел сюжэтныя з зыходнага кода, і я дазваляю карыстачу дадаваць яго ў пасля стварэння дыяграмы.
дададзена аўтар jbolanos, крыніца
Вы можаце выкарыстоўваць функцыю addPlotLine, каб зрабіць гэта. api.highcharts.com/highcharts#Axis.addPlotLine()
дададзена аўтар Sebastian Bochan, крыніца

Вы можаце толькі разбураць і ствараць новы plotLins, таму што функцыя абнаўлення() не даступная.

5
дададзена
Я раздзел сюжэтныя з зыходнага кода, і я дазваляю карыстачу дадаваць яго ў пасля стварэння дыяграмы.
дададзена аўтар jbolanos, крыніца
Вы можаце выкарыстоўваць функцыю addPlotLine, каб зрабіць гэта. api.highcharts.com/highcharts#Axis.addPlotLine()
дададзена аўтар Sebastian Bochan, крыніца

Вы можаце толькі разбураць і ствараць новы plotLins, таму што функцыя абнаўлення() не даступная.

5
дададзена
Я раздзел сюжэтныя з зыходнага кода, і я дазваляю карыстачу дадаваць яго ў пасля стварэння дыяграмы.
дададзена аўтар jbolanos, крыніца
Вы можаце выкарыстоўваць функцыю addPlotLine, каб зрабіць гэта. api.highcharts.com/highcharts#Axis.addPlotLine()
дададзена аўтар Sebastian Bochan, крыніца

проста дадаць гэты код, а затым вы можаце выкарыстоўваць метад plotline.update

<div class="snippet" data-lang="js" data-hide="false"> <div class="snippet-code">

    //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();
        }
    }
</div> </div>
2
дададзена
Дзякуючы гэта выдатна працуе. Проста перадаць ва ўласнасць вам трэба абноўленае і ён будзе працаваць: chart.series [0] .xAxis.plotLinesAndBands [0] .update ({ "колер": "#eeeeee"});
дададзена аўтар Mark, крыніца

проста дадаць гэты код, а затым вы можаце выкарыстоўваць метад plotline.update

<div class="snippet" data-lang="js" data-hide="false"> <div class="snippet-code">

    //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();
        }
    }
</div> </div>
2
дададзена
Дзякуючы гэта выдатна працуе. Проста перадаць ва ўласнасць вам трэба абноўленае і ён будзе працаваць: chart.series [0] .xAxis.plotLinesAndBands [0] .update ({ "колер": "#eeeeee"});
дададзена аўтар Mark, крыніца

проста дадаць гэты код, а затым вы можаце выкарыстоўваць метад plotline.update

<div class="snippet" data-lang="js" data-hide="false"> <div class="snippet-code">

    //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();
        }
    }
</div> </div>
2
дададзена
Дзякуючы гэта выдатна працуе. Проста перадаць ва ўласнасць вам трэба абноўленае і ён будзе працаваць: chart.series [0] .xAxis.plotLinesAndBands [0] .update ({ "колер": "#eeeeee"});
дададзена аўтар Mark, крыніца

Here's what worked for me 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();
1
дададзена

Я спрабаваў прысвоіць ідэнтыфікатар сюжэтнага,

Спачатку выдаліце ​​сюжэтную цалкам removePlotLine (ID) , затым дадаюць яго назад addPlotLine . Ён выдатна працуе для мяне.

function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}
0
дададзена

Я спрабаваў прысвоіць ідэнтыфікатар сюжэтнага,

Спачатку выдаліце ​​сюжэтную цалкам removePlotLine (ID) , затым дадаюць яго назад addPlotLine . Ён выдатна працуе для мяне.

function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}
0
дададзена

Я спрабаваў прысвоіць ідэнтыфікатар сюжэтнага,

Спачатку выдаліце ​​сюжэтную цалкам removePlotLine (ID) , затым дадаюць яго назад addPlotLine . Ён выдатна працуе для мяне.

function upgradePlotLine(new_line) {
    chart.yAxis[0].removePlotLine('my_line');
    chart.yAxis[0].addPlotLine(new_line);
}
0
дададзена