Highchart 中的线条着色需要很长时间
Colouring of lines in Highchart takes ages
我有一个约 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 分钟左右...真的很慢。
也许等到你改变了所有的系列后再重新绘制图表?您可能想尝试 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();
...
我有一个约 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 分钟左右...真的很慢。
也许等到你改变了所有的系列后再重新绘制图表?您可能想尝试 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();
...