Dcjs-introduction-to-crossfilter

提供:Dev Guides
移動先:案内検索

DC.js-クロスフィルターの紹介

クロスフィルターは多次元データセットです。 100万以上のレコードを含むデータセットとの非常に高速な対話をサポートします。

基本概念

クロスフィルターは、クロスフィルター名前空間で定義されます。 セマンティックバージョニングを使用します。 以下で定義されている果物のコレクションでロードされたクロスフィルターオブジェクトを考慮してください-

var fruits = crossfilter ([
   { name: “Apple”, type: “fruit”, count: 20 },
   { name: “Orange”, type: "fruit”, count: 10 },
   { name: “Grapes”, type: “fruit”, count: 50 },
   { name: “Mango”,  type: “fruit”, count: 40 }
]);

グループ内の合計レコードを実行する必要がある場合、次の機能を使用できます-

var count = fruits.groupAll().reduceCount().value();

特定のタイプでフィルタリングしたい場合-

var filtering = fruits.dimension(function(d) { return d.type; });
filtering.filter(“Grapes”)

同様に、クロスフィルターでグループ化を実行できます。 これを行うには、次の機能を使用できます-

var grouping = filtering.group().reduceCount();
var first = grouping.top(2);

したがって、Crossfilterは非常に高速になるように構築されています。 フィルターの適用時にグループを再計算する場合、増分的に計算します。 クロスフィルターの寸法は非常に高価です。

クロスフィルターAPI

注目すべきCrossfilter APIについて詳しく見ていきましょう。

  • * crossfilter([records])*-新しいクロスフィルターの構築に使用されます。 レコードが指定されている場合、指定されたレコードが同時に追加されます。 レコードは、JavaScriptオブジェクトまたはプリミティブの任意の配列にすることができます。
  • * crossfilter.add(records)*-指定されたレコードをクロスフィルターに追加します。
  • * crossfilter.remove()*-現在のフィルターに一致するすべてのレコードをクロスフィルターから削除します。
  • * crossfilter.size()*-クロスフィルターのレコード数を返します。
  • * crossfilter.groupAll()*-すべてのレコードをグループ化し、単一の値に減らすための関数です。
  • * crossfilter.dimension(value)*-指定された値アクセサー関数を使用して新しいディメンションを構築するために使用されます。
  • * dimension.filter(value)*-ディメンションの一致値のレコードをフィルタリングするために使用され、ディメンションを返します。
  • * dimension.filterRange(range)*-range [0]以上でrange [1]未満のディメンションの値のレコードをフィルタリングします。
  • * dimension.filterAll()*-このディメンションのフィルターをクリアします。
  • * dimension.top(k)*-この次元の自然順序に従って、上位kレコードを含む新しい配列を返すために使用されます。
  • * dimension.bottom(k)*-この次元の自然順序に従って、下位kレコードを含む新しい配列を返すために使用されます。
  • * dimension.dispose()*-クロスフィルターからディメンションを削除するために使用されます。

次の章では、D3.jsについて簡単に理解します。