Javascript D3 scaleLinear()返回rgb值,尽管范围是十六进制值
scaleLinear()返回rgb字符串值,尽管范围映射为十六进制值。我的用法不正确吗Javascript D3 scaleLinear()返回rgb值,尽管范围是十六进制值,javascript,d3.js,Javascript,D3.js,scaleLinear()返回rgb字符串值,尽管范围映射为十六进制值。我的用法不正确吗 const value = 0; col = d3.scaleLinear().domain([0, 16000]).range(["#ffdc00","#ffa900"]); console.log(col(value)); //returns rgb(255, 220, 0) d3比例依赖于d3插值,它在检测到颜色时默认使用d3.interpolateRgb: 如果b是可强制为颜色的颜色或字符串,请使
const value = 0;
col = d3.scaleLinear().domain([0, 16000]).range(["#ffdc00","#ffa900"]);
console.log(col(value));
//returns rgb(255, 220, 0)
d3比例
依赖于d3插值
,它在检测到颜色时默认使用d3.interpolateRgb
:
如果b是可强制为颜色的颜色或字符串,请使用InterpolatorGB
如以下文件所述:
插值器的返回值是RGB字符串
因此,该行为是正常的,并且提供的代码示例非常好
RGB字符串相当于它们的十六进制表示形式,因此可以直接使用它们
如果用例需要十六进制字符串,则可以使用d3 color
中的函数,如下面的代码段所示:
const值=0;
col=d3.scaleLinear().domain([016000]).range([“#ffdc00”,“#ffa900”]);
设rgbValue=col(值)
log('rgb字符串:',rgbValue);
log('hex字符串:',d3.color(rgbValue.formatHex())代码>
这是预期的行为,如果使用正确,则除非使用自定义插值器,否则刻度将不会返回十六进制值。尽管您可以使用创建一个十六进制值,该值由标尺返回。