0

ハイチャートの積み上げ/縦棒グラフからデータとカテゴリを追加/削除して、積み上げ縦棒グラフを編集しようとしています。ただし、カテゴリ名/値/カウントとしてグラフに矛盾があります。

私の追加関数/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/

4

1 に答える 1

1

問題は、値がx軸に対してインクリメントされるが、デクリメントされることはないということです。たとえば、ポイントの追加->最後のポイントのインデックスがインクリメントされる場合。ただし、ポイントが削除されるたびに(最後のポイントだけでなく!)、そのインデックスはデクリメントされません。

一般に、各ポイントプロパティで少し遊ぶseries.xIncrementか、(最良の)追加を行う必要があります。x

series.xIncrementを使用したjsFiddle:http://jsfiddle.net/UP55k/23/ 同じ値をチェック/チェック解除した場合にのみ機能します-一般的な考え方のみを示します)

于 2013-04-03T11:13:16.930 に答える