Javascript d3线性色标输出错误
我有以下功能:Javascript d3线性色标输出错误,javascript,d3.js,Javascript,D3.js,我有以下功能: function getColor(value){ //value from 0 to 1 var color = d3.scale.linear() .domain([0, 1]) .range(colorbrewer.Greys[9]); console.log(value + " = > " + color(value)); return color(value); } 这使用来自D3的数据 但是,返回的值是关闭的
function getColor(value){
//value from 0 to 1
var color = d3.scale.linear()
.domain([0, 1])
.range(colorbrewer.Greys[9]);
console.log(value + " = > " + color(value));
return color(value);
}
这使用来自D3的数据
但是,返回的值是关闭的
例如,我得到:
1=>#f0f0
和0=>#ffffff
这两个变量恰好是量表中的第一个和第二个变量:
如何使其插值,以便它根据0和1之间的值计算正确的颜色?我也试过顺序音阶,但也没有多大帮助。引用:
数组必须包含两个或多个值,以匹配输入域的基数,否则将截断其中较长的值以匹配另一个值
因此,您可以只获取colorbrewer数组的第一个和最后一个值,或者为输入域提供与相应输出相对应的更多值。您真正想做的是使用
量化尺度是线性尺度的一种变体,具有离散而非连续的范围。输入域仍然是连续的,并且根据输出范围(基数)中的值的数量划分为统一的段
考虑这一点:
其中关键是:
function getColor(value){
//value from 0 to 1
var color = d3.scale.quantize()
.domain([0, 1])
.range(colorbrewer.Greys[9]);
console.log(value + " = > " + color(value));
return color(value);
}
嗯,我就是这么想的。如何构造这样一个间隔,或者更好,有没有一种方法可以基于介于0和1之间的浮点值创建一个新的十六进制颜色代码?不知道你在问什么,但是你可以简单地用1除以值的个数来得到你的步长,然后有一个循环,在每次迭代中加上间隔来得到域。但是这就是有序的尺度,对吗?假设有两种颜色:黑色和白色以及两个值0和1。然后,在查询比例时选择黑色或什么。例如,我希望它返回0.5No的灰色,它不同于序数刻度,它仍然会为输入值进行插值,而输入值并不完全在域中。