2

私は pivotable.js ライブラリを使用しています。この pivotable.jsでは、すべてのセル値の合計ではなく、合計列にすべてのセルの平均値を表示したいと考えています。下の画像を見てください。pivottable.js で値を表示する方法を示しています。

ここに画像の説明を入力

var average = $.pivotUtilities.aggregatorTemplates.average;
var numberFormat = $.pivotUtilities.numberFormat;
var intFormat = numberFormat({digitsAfterDecimal: 1});

$("#output").pivot(
  [
    {color: "green", shape: "null", value: 0},
    {color: "blue", shape: "circle", value: 1},
    {color: "red", shape: "triangle", value: 2},
    {color: "red", shape: "triangle", value: 12},
    {color: "blue", shape: "circle", value: 3},
    {color: "blue", shape: "triangle", value: 12}
  ],
  {
    rows: ["color"],
    cols: ["shape"],
    aggregator: average(intFormat)(["value"])
  }
);

どうすればこれを達成できるか教えてください。ここにフィドルがあります

https://jsfiddle.net/dky0hh1y/5/

私のカスタムアグリゲーター

 var successRate = function() {
  return function() {
    return {
      sumSuccesses: 0,
      sumTrials: 0,
      push: function(record) {
        if (!isNaN(parseFloat(record.student))) {
          this.sumSuccesses += parseFloat(record.student);
        }

      },
      value: function() { return this.sumSuccesses },
      format: function(x) { return x; },
      numInputs: 0
    };
  };
};

ありがとう

4

1 に答える 1

0

PivoTable.js は、合計かどうかに関係なく、すべてのセルに対して同じアグリゲーター関数を使用します。合計行/列の値を計算する別の方法が必要な場合は、独自のカスタム アグリゲーターを作成する必要があります。このhttps://github.com/nicolaskruchten/pivottable/wiki/Aggregatorsのドキュメントは次のとおりです

于 2018-06-12T16:03:37.567 に答える