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'
代わりに、 and のみを取り除き、data1
anddata2
を追加する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();