發散比例尺
發散比例尺類似於 線性比例尺,它們會將連續的數字輸入域對應到連續的輸出範圍。與線性比例尺不同的是,發散比例尺的輸入域和輸出範圍永遠只有三個元素,而輸出範圍通常指定為插補器,而不是值陣列。發散比例尺通常用於顏色編碼;另請參閱 d3-scale-chromatic。這些比例尺不會公開 反轉 和 插補 方法。發散比例尺也有 對數、冪次 和 對稱對數 變體。
scaleDiverging(domain, interpolator)
範例 · 原始碼 · 建立一個新的發散比例尺,其 domain 和 interpolator 函數或陣列為指定值。
const color = d3.scaleDiverging([-1, 0, 1], d3.interpolateRdBu);
如果未指定 domain,預設為 [0, 0.5, 1]。
const color = d3.scaleDiverging(d3.interpolateRdBu);
如果未指定 interpolator,預設為恆等函數。
const identity = d3.scaleDiverging();
套用比例尺時,interpolator 會以一個通常在 [0, 1] 範圍內的值呼叫,其中 0 代表極負值,0.5 代表中立值,1 代表極正值。
如果 interpolator 是陣列,它代表比例尺的三元素輸出範圍,並使用 d3.interpolate 和 d3.piecewise 轉換為 interpolator 函數。
const color = d3.scaleDiverging(["blue", "white", "red"]);
發散比例尺的 domain 必須是數字,且必須包含三個值。
diverging.interpolator(interpolator)
如果指定 interpolator,將比例尺的 interpolator 設定為指定的函數。
const color = d3.scaleDiverging().interpolator(d3.interpolateRdBu);
如果未指定 interpolator,傳回比例尺目前的 interpolator。
color.interpolator() // d3.interpolateRdBu
diverging.range(range)
請參閱 linear.range。如果指定 range,給定的三個元素陣列會使用 piecewise 轉換為 interpolator 函數。
const color = d3.scaleDiverging().range(["blue", "white", "red"]);
以上等同於
const color = d3.scaleDiverging(d3.piecewise(["blue", "white", "red"]));
diverging.rangeRound(range)
請參閱 linear.range。如果指定 range,會隱含地使用 interpolateRound 作為 interpolator。
scaleDivergingLog(domain, range)
傳回一個具有對數轉換的新發散比例尺,類似於 對數比例尺。
scaleDivergingPow(domain, range)
傳回一個具有指數轉換的新發散比例尺,類似於 次方比例尺。
scaleDivergingSqrt(domain, range)
傳回一個具有平方根轉換的新發散比例尺,類似於 平方根比例尺。
scaleDivergingSymlog(domain, range)
傳回一個新的發散比例尺,具有對稱對數轉換,類似於 symlog 比例尺。