我正在尝试通过在highcharts stacked / column chart中添加/删除数据和类别来编辑堆叠柱形图。但是图表上的类别名称/值/计数存在不一致。
我的添加功能/参数: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]。每当我在此之后添加任何新类别时,它会增加最后一个数字而不是我给出的字符串。
我想知道上面的代码会出现什么问题,以及在堆积柱形图中添加/删除类别,点,数据的正确方法是什么。
答案 0 :(得分:1)
问题是x轴增加了值,但从未递减。例如,当添加点 - >最后一个点的索引递增。但是每当删除点(不仅是最后一个!)时,索引都不会递减。
一般情况下,您必须使用series.xIncrement
或(最佳)添加每个点x
属性。
jsFiddle with series.xIncrement:http://jsfiddle.net/UP55k/23/(仅在检查/取消选中相同的值时起作用 - 仅显示一般想法)