ハイチャートの積み上げ/縦棒グラフからデータとカテゴリを追加/削除して、積み上げ縦棒グラフを編集しようとしています。ただし、カテゴリ名/値/カウントとしてグラフに矛盾があります。
私の追加関数/param:data /:
//setting category names
var categories = this.obj.xAxis[0].categories;
categories.push(data.name);
this.obj.xAxis[0].setCategories(categories);
//adding new points getting the series by name
this.obj.get("a").addPoint(data);
this.obj.redraw();
私の削除関数/param:name /:
var self = this;
var cat;
var data_series = [];
$.each(self.obj.series, function(sKey, sVal){
var j = sVal.data.length - 1;
var isRemoved = false;
var dt;
while(!isRemoved && j >= 0) {
var dVal = sVal.data[j];
if (dVal.category === name) {
dVal.remove();
isRemoved = true;
}
j--;
}
});
var categories = self.obj.xAxis[0].categories;
categories.splice( $.inArray(name, categories), 1 );
self.obj.xAxis[0].setCategories(categories);
self.obj.redraw();
結果は次のようになります。新しいカテゴリ/ポイント、スタック、および列を適切に追加できます。最新のカテゴリを適切に削除できます。左にシフトして、正常にレンダリングされます。しかし、カテゴリ[A、B、C、D]からカテゴリAを削除すると、結果は[C、D、3]としてレンダリングされます。ただし、[B、C、D]である必要があります。そして、この後に新しいカテゴリを追加すると、指定した文字列ではなく最後の番号が増えます。
上記のコードの何が間違っているのか、積み上げ縦棒グラフにカテゴリ、ポイント、データを追加/削除する適切な方法は何でしょうか。
ここで試してみることができます:http://jsfiddle.net/gencay/UP55k/