我有一个{150}的Highcharts line chart。我通过在每行上盘旋并调用一个小的javascript函数来为其计算值,从而在从蓝色到绿色到黄色到红色的渐变上为每个颜色着色。
但是,计算它们总是要花很多时间-而且因为时间很短,所以确实需要很多时间。我不知道为什么会这么快地放慢速度,因为我还没碰过代码。
循环浏览的代码:
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分钟左右……真的很慢。
答案 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();
...