Highchart中的线条着色需要一段时间

时间:2019-05-14 16:04:40

标签: javascript highcharts colors linechart

我有一个{150}的Highcharts line chart。我通过在每行上盘旋并调用一个小的javascript函数来为其计算值,从而在从蓝色到绿色到黄色到红色的渐变上为每个颜色着色。

Line chart with the colors

但是,计算它们总是要花很多时间-而且因为时间很短,所以确实需要很多时间。我不知道为什么会这么快地放慢速度,因为我还没碰过代码。

循环浏览的代码:

    function(chart)
    { 
        // number of line in graph; for the last year to highlight, this is important
        var chart = this;
        var n = chart.series.length; 


        // color the lines
        for(i = 0; i < n; i++)
        {
            var value=i/n;
            chart.series[i].update({color: getColor(value)});
        }


        chart.series[(n-1)].update({lineWidth: 4});
        chart.series[(n-1)].update({marker: {enabled: true}});
        chart.series[(n-1)].update({marker: {fillColor: '#000000'}})            
    });

为了获取正确的颜色:

    function getColor(value){
        //value from 0 to 1
        var hue=((1-value)*240).toString(10);
        return ["hsl(",hue,",100%,40%)"].join("");
    }

任何想法都可以改善,因为图表现在加载的时间大约为1分钟左右……真的很慢。

1 个答案:

答案 0 :(得分:1)

也许要等到更改所有系列后才能重新绘制图表?您可能要尝试使用this update选项:

...
        // color the lines
        for(i = 0; i < n; i++)
        {
            var value=i/n;
            chart.series[i].update({color: getColor(value)}, false);
        }
        chart.redraw();
...