首页 文章

Highcharts在堆叠柱形图中添加和删除数据到系列

提问于
浏览
0

我试图通过添加/删除高图堆积/柱形图中的数据和类别来编辑堆叠柱形图 . 但是图表上的类别名称/值/计数存在不一致 .

我的add function / 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();

我的删除功能/参数: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/

1 回答

  • 1

    问题是x轴增加了值,但从未递减 . 例如,当添加点 - >最后一个点的索引递增时 . 但每当删除点(不仅是最后一个!)时,索引不会递减 .

    一般情况下,您必须使用 series.xIncrement 或(最佳)添加每个点 x 属性 .

    jsFiddle with series.xIncrement:http://jsfiddle.net/UP55k/23/(仅在检查/取消选中相同的值时起作用 - 仅显示一般想法)

相关问题