幂尺度
幂 (“pow”) 尺度与 线性尺度 相似,但它们在计算输出范围值之前对输入域值应用指数变换。每个范围值 y 可以表示为域值 x 的函数:y = mx^k + b,其中 k 是 指数 值。幂尺度也支持负域值,在这种情况下,输入值和输出值将乘以 -1。
scalePow(domain, range)
示例 · 源代码 · 使用指定的 域 和 范围、指数 1、默认 插值器 和 禁用的 钳制 创建一个新的幂尺度。
js
const x = d3.scalePow([0, 100], ["red", "blue"]).exponent(2);
如果 domain 或 range 未指定,则每个都默认为 [0, 1]。
scaleSqrt(domain, range)
示例 · 源代码 · 使用指定的 域 和 范围、指数 0.5、默认 插值器 和 禁用的 钳制 创建一个新的幂尺度。
js
const x = d3.scaleSqrt([0, 100], ["red", "blue"]);
如果 domain 或 range 未指定,则每个都默认为 [0, 1]。这是一种便捷方法,等效于 d3.scalePow(…).exponent(0.5)
。
pow.exponent(exponent)
示例 · 源代码 · 如果指定了 exponent,则将当前指数设置为给定的数值,并返回此尺度。
js
const x = d3.scalePow([0, 100], ["red", "blue"]).exponent(2);
如果未指定 exponent,则返回当前指数,默认为 1。
js
x.exponent() // 2
如果 exponent 为 1,则幂尺度实际上是 线性 尺度。