我正在尝试通过从 highcharts 堆叠/柱形图中添加/删除数据和类别来编辑堆叠柱形图。但是图表上的类别名称/值/计数不一致。
我的添加函数 /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();
我的删除功能/参数:名称/:
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/