在 d3.js 中反转色阶

jun*_*er- 3 d3.js

是否可以在 d3 中创建具有颜色域和数字范围的比例?

我尝试了以下方法:

  var colorScale = d3.scale.linear().range(["red", "white"]).domain([3, 9.5])
  console.log('cs:', colorScale(4));
  console.log('cs:', colorScale.invert(colorScale(4)));
Run Code Online (Sandbox Code Playgroud)

但输出并不是很令人鼓舞:

cs: #ff2727
cs: NaN
Run Code Online (Sandbox Code Playgroud)

这是不可能完成的任务还是我做错了什么?

Lar*_*off 5

根据文档

注意:只有在输出范围是数字时才支持反转运算符!D3 允许输出范围为任意类型;在幕后,d3.interpolate 或您选择的自定义插值器用于将归一化参数 t 映射到输出范围内的值。因此,输出范围可能是颜色、字符串,甚至是任意对象。由于没有工具可以“取消内插”任意类型,因此目前仅在数字范围上支持反转运算符。

所以不,你不能这样做。