在D3.js中,提供了四种颜色选择器,分别是RGB, HSL, LAB 和 HCL。
RGB是最常用的色彩模式,r、g、b分别对应红、绿、蓝,通过颜色叠加表示颜色,能够表示256X256X256中颜色。
HSL是工业界的一种标准,三个值分别对应色相(H)、饱和度(S)、明度(L)。饱和和明度的值为0~1,色相为0~360。
LAB颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。
HCL确实是一种色彩模式,能够输出颜色,但是我不太清楚具体的表示模式,也没有找到对应资料。
创建颜色对象:
d3.rgb()
d3.hsl()
d3.lab()
d3.hcl()
亮度调节:
.brighter()/*明亮*/
.darker()/*暗*/
转化为字符串输出:
.toString()
在d3中可以将颜色转化为其他的颜色对象:
rgb.hsl()
hsl.rgb()
lab.rgb()
hcl.rgb()
除此之外,D3还提供了插值函数,可以得到两个颜色之间的颜色,通常用在类似热力图的效果中。
插值:
var color1=d3.rgb(255,0,0);
var color2=d3.hsl(180,.5,.5);
var compute=d3.interpolate(color1,color2)
当调用compute(n)时,可以输出对应的插值颜色,其中n大于等于0小于等于1,如果超出边界,输出边界颜色。