0

各ズームのデータを更新するために ajax 呼び出しで highstock を使用しています。各ズーム中に、チャート データは API 呼び出しを介して更新されます。再描画のたびに、線の色がランダムに変更されます。どうすればこれを回避できますか?

ズーム 1 ズーム 2ズーム 1 ズーム 2

私はangularjsを使用していることに注意してください。

JS:

var afterSetExtremes = function(e) {
    if (!firstTimeLoad) {
        var fromDate = moment(Math.round(e.min)).format();
        var toDate = moment(Math.round(e.max)).format();
        var dataToSend = {
            graph: selectedChannels,
            fromDate: fromDate,
            toDate: toDate
        };
        //API call
        graphService.create({}, {}, dataToSend, {}).then(function(response) {
            if (response.status) {
                var hasData = false;
                response.data.records.map(function(op) {
                    if (op.data.length) {
                        hasData = true;
                    }
                });
                if (hasData) {
                    graphData = response.data;
                    // Updating chart series data
                    chartConfig.series = graphData.records;
                } else {
                    notify.error('No data found');
                }
            } else {
                notify.error('No data found');
            }
        }, function(reason) {
            notify.error('Application encountered some issues, please try again.');
        });
    }
    firstTimeLoad = false;

};

var chartConfig = {

    options: {
        chart: {
            renderTo: 'container',
            type: 'spline',
            zoomType: 'x'
        },
        legend: {
            enabled: true
        },
        xAxis: {
            events: {
                afterSetExtremes: afterSetExtremes
            }
        },
        yAxis: {
            floor: 0,
            labels: {
                format: '{value} ' + data.unit
            }
        },
        rangeSelector: {
            buttons: [{
                type: 'day',
                count: 1,
                text: '1d'
            }, {
                type: 'day',
                count: 7,
                text: '7d'
            }, {
                type: 'month',
                count: 1,
                text: '1m'
            }, {
                type: 'year',
                count: 1,
                text: '1y'
            }, {
                type: 'all',
                text: 'All'
            }],
            buttonTheme: {
                fill: 'none',
                stroke: 'none',
                'stroke-width': 0,
                r: 8,
                style: {
                    color: '#039',
                    fontWeight: 'bold'
                },
                states: {
                    hover: {},
                    select: {
                        fill: '#039',
                        style: {
                            color: 'white'
                        }
                    }
                }
            },
            // inputEnabled: true, // it supports only days
            selected: 4 // all
        },
        navigator: {
            enabled: true,
            adaptToUpdatedData: false,
            series: {
                includeInCSVExport: false
            }
        },
        plotOptions: {
            series: {
                animation: {
                    complete: function() {
                        $(window).resize(function() {
                            resizeToCover();
                        });
                        $(window).trigger('resize');
                        $('#chart1').css('display', 'block');

                    }
                }
            }
        },
        scrollbar: {
            liveRedraw: false
        }
    },
    series: graphData.records,
    title: {
        text: 'Graph'
    },
    loading: false,
    useHighStocks: true
};
4

0 に答える 0