既存のデータ シリーズを新しいデータ配列で更新し、完了したらredraw
関数を呼び出そうとしています。これは完全に機能しますが、一種の拡大/縮小遷移が必要なため、満足していません。Highcharts の例を見たことがあります(既存のデータ セットをいじってから、[選択したシリーズに新しいデータを設定] ボタンをクリックします) が、この動作を再現できません。
これは私が書いたコードです:
var series, newSeriesThreshold = this.chart.series.length * 2;
for (var i = 0; i < data.length; i += 2) {
series = {
name: this.data[i].title,
data: this.data[i].data,
color: this.data[i].color
};
if (i >= newSeriesThreshold) {
this.chart.addSeries(series, false);
} else {
var currentSeries = this.chart.series[i / 2];
currentSeries.setData(series.data, false);
}
}
this.chart.redraw();
グラフを作成するときのオプションは次のとおりです。
var config = {
chart: {
renderTo: $(this.container).attr('id'),
type: this.settings.type,
animation: {
duration: 500,
easing: 'swing'
}
},
title: {
text: null
},
legend: {
enabled: this.settings.legend.show
},
tooltip: {
formatter: function() {
return this.x.toFixed(0) + ": <b>" + this.y.toString().toCurrency(0) + '</b>';
}
},
xAxis: {
title: {
text: this.settings.xaxis.title,
style: {
color: '#666'
}
}
},
yAxis: {
title: {
text: this.settings.yaxis.title,
style: {
color: '#666'
}
}
},
series: series,
plotOptions: {
column: {
color: '#FF7400'
}
},
credits: {
enabled: false
}
};
これにより、効果が移行することなく、すぐに更新されます。私が間違っているかもしれないアイデアはありますか?