2013-03-26 77 views
0

我試圖通過從高圖層堆積/柱形圖表中添加/刪除數據和類別來編輯堆積列圖表。但是,圖表中存在不一致的類別名稱/值/數量。Highcharts在堆積列圖表中向系列中添加數據和刪除數據

我的附加功能/參數:數據/:

//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(); 

我remove函數/參數:名稱/:

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

的問題是,值增加爲x軸,但從來沒有遞減。例如,當最後一點的添加點 - >索引增加時。但是,每當刪除點(不僅是最後一個!),索引不會遞減。

一般來說,你必須打series.xIncrement或(最好)加點每個點x屬性。

的jsfiddle與series.xIncrement:http://jsfiddle.net/UP55k/23/(只能當檢查/取消選中相同的值 - 只顯示總的想法)

+0

現在我試着刪除(你的第二建議)後修改所有'點x'性能。 http://jsfiddle.net/gencay/UP55k/38/,因爲您將會看到'x'屬性似乎已經爲每個'series.data'設置正確,但是圖表和對象值之間仍然存在不便(「 x','xIncrement','類別')。 :/ – gencay 2013-04-03 14:47:40

+0

我的意思是這樣的:http://jsfiddle.net/UP55k/39/ 現在點刪除後,使用'point.update({x:value})更新每個點來設置正確的類別。 – 2013-04-04 09:47:10

+0

point.update工作。感謝Pawel! – gencay 2013-04-17 08:24:40