跳到内容

幂尺度

幂 (“pow”) 尺度与 线性尺度 相似,但它们在计算输出范围值之前对输入域值应用指数变换。每个范围值 y 可以表示为域值 x 的函数:y = mx^k + b,其中 k指数 值。幂尺度也支持负域值,在这种情况下,输入值和输出值将乘以 -1。

scalePow(domain, range)

示例 · 源代码 · 使用指定的 范围指数 1、默认 插值器 和 禁用的 钳制 创建一个新的幂尺度。

js
const x = d3.scalePow([0, 100], ["red", "blue"]).exponent(2);

如果 domainrange 未指定,则每个都默认为 [0, 1]。

scaleSqrt(domain, range)

示例 · 源代码 · 使用指定的 范围指数 0.5、默认 插值器 和 禁用的 钳制 创建一个新的幂尺度。

js
const x = d3.scaleSqrt([0, 100], ["red", "blue"]);

如果 domainrange 未指定,则每个都默认为 [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,则幂尺度实际上是 线性 尺度。