コンテンツへスキップ

分位スケール

分位スケールは、サンプリングされた入力ドメインを離散的な範囲にマップします。ドメインは連続的とみなされるため、スケールは妥当な入力値をすべて受け入れます。ただし、ドメインは離散的なサンプル値のセットとして指定されます。出力範囲の値の数(基数)によって、ドメインから計算される分位の数が決定されます。分位を計算するために、ドメインはソートされ、離散値の母集団として扱われます。分位を参照してください。例については、この分位図を参照してください。

scaleQuantile(domain, range)

· ソース · 指定されたdomainrangeを使用して、新しい分位スケールを構築します。

js
const color = d3.scaleQuantile(penguins.map((d) => d.body_mass_g), d3.schemeBlues[5]);

domainまたはrangeのいずれかが指定されていない場合、それぞれデフォルトで空の配列になります。分位スケールは、ドメインと範囲の両方が指定されるまで無効です。

quantile(value)

· ソース · 入力ドメインvalueが与えられた場合、出力範囲の対応する値を返します。

js
color(3000); // "#eff3ff"
color(4000); // "#6baed6"
color(5000); // "#08519c"

quantile.invertExtent(value)

· ソース · 範囲内の対応するvalueに対して、ドメイン内の値の範囲 [x0, x1] を返します。quantileの逆関数です。

js
color.invertExtent("#eff3ff"); // [2700, 3475]
color.invertExtent("#6baed6"); // [3800, 4300]
color.invertExtent("#08519c"); // [4950, 6300]

このメソッドは、例えば、マウスの下のピクセル位置に対応するドメイン内の値を決定するなど、インタラクションに役立ちます。

quantile.domain(domain)

· ソース · domainが指定された場合、分位スケールのドメインを指定された離散数値のセットに設定し、このスケールを返します。

js
const color = d3.scaleQuantile(d3.schemeBlues[5]);
color.domain(penguins.map((d) => d.body_mass_g));

配列は空であってはならず、少なくとも1つの数値を含んでいる必要があります。NaN、null、およびundefinedの値は無視され、サンプル母集団の一部とは見なされません。指定された配列の要素が数値でない場合は、数値に強制変換されます。入力配列のコピーがソートされ、内部に保存されます。

domainが指定されていない場合は、スケールの現在のドメイン(観測された値のセット)を返します。

js
color.domain() // [2700, 2850, 2850, 2900, 2900, 2900, 2900, …]

quantile.range(range)

· ソース · rangeが指定された場合、範囲内の離散値を設定します。

js
const color = d3.scaleQuantile();
color.range(d3.schemeBlues[5]);

配列は空であってはならず、任意の値の型を含めることができます。range配列の値の数(基数または長さ)によって、計算される分位の数が決定されます。例えば、四分位数を計算するには、rangeは[0, 1, 2, 3]などの4つの要素の配列でなければなりません。

rangeが指定されていない場合は、現在の範囲を返します。

js
color.range() // ["#eff3ff", "#bdd7e7", "#6baed6", "#3182bd", "#08519c"]

quantile.quantiles()

· ソース · 分位の閾値を返します。

js
color.quantiles() // [3475, 3800, 4300, 4950]

範囲n個の離散値が含まれている場合、返される配列にはn - 1個の閾値が含まれます。最初の閾値より小さい値は最初の分位に含まれ、最初の閾値以上で2番目の閾値より小さい値は2番目の分位に含まれるというように続きます。内部的には、閾値配列は、bisectとともに、与えられた入力値に関連付けられた出力分位を見つけるために使用されます。

quantile.copy()

· ソース · このスケールの正確なコピーを返します。

js
const c1 = d3.scaleQuantile(d3.schemeBlues[5]);
const c2 = c1.copy();

このスケールへの変更は、返されたスケールに影響を与えず、その逆も同様です。