Edit2:问题出在下面函数中的 else 语句中。
click: function() {
var drilldown = this.drilldown;
if (drilldown) { // drill down
setChart(drilldown.name, drilldown.categories, [drilldown.data], drilldown.color);
} else { // restore
setChart(name, categories1, [data1, data2], 'white');
}
}
取而代之的是摆脱name1 = 'Actual'
并且只拥有data1
和data2
添加它们name
然后color
你可以这样做
click: function() {
var drilldown = this.drilldown;
if (drilldown) { // drill down
chart.xAxis[0].setCategories(drilldown.categories);
setChart([drilldown.data]);
} else { // restore
chart.xAxis[0].setCategories(categories);
setChart([data1, data2]);
}
}
// add code for removing series
chart.addSeries({
data
});
我希望你能理解,但如果你构建data1/2
为一个 highcharts 对象会更容易,只需将向下钻取部分添加到它。所以你可以改变;
series: [{
name: name1,
data: data1,
color: colors[0]},
{
name: name2,
data: data2,
color: colors[1]}],
到:
series: [data1, data2],
编辑:当您进行以下操作时,您不应该将 redraw 设置为true
,它会快得多。添加系列也是如此。chart.redraw()
在删除和添加图表之前,您无需致电。并且向后删除东西更容易。所以改变:
while (chart.series.length > 0) {
chart.series[0].remove(true);
}
到
for (var i = chart.series.length; i >= 0; i--){
chart.series[i].remove(false);
}
// add series with redraw == false
chart.redraw();