ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> [Wiki](Home) ▸ [[API--中文手册]] ▸ [[核心函数]] ▸ *颜色* * 如发现翻译不当或有其他问题可以通过以下方式联系译者: * 邮箱:zhang_tianxu@sina.com * QQ群:[D3数据可视化](http://jq.qq.com/?_wv=1027&k=ZGcqYF)205076374,[大数据可视化](http://jq.qq.com/?_wv=1027&k=S8wGMe)436442115 实现可视化要经常和颜色打交道。虽然你的电脑显示屏懂得很多的颜色,但这对通过js来配置颜色帮助不大。所以d3提供多种颜色空间的表示,包括 RGB, HSL,LAB 和 HCL,可实现规范、插值、转换和操作(例如颜色的明暗)。 注意:虽然你可以直接操作颜色,当时也需要参考一下D3对于interpolateRgb, interpolateHsl 和 scales等内置颜色插值的实现。 如果你想查阅调色盘,请查阅ordinal scales 。 RGB # d3.rgb(r, g, b) 通过输入的参数r, g 和 b,创建一个RGB类型颜色对象。参数必须是在0-255之间的整数。你可以通过访问返回的颜色对象的r, g 和 b属性值来获取参数r, g, b的值。 # d3.rgb(color) • rgb decimal - "rgb(255,255,255)" • hsl decimal - "hsl(120,50%,20%)" • rgb hexadecimal - "#ffeeaa" • rgb shorthand hexadecimal - "#fea" • named - "red", "white", "blue" 通过解析输入的字符串参数,创建一个RGB类型颜色对象。如果参数 color 不是一个字符串,参数就会被强制类型转换为字符串类型。因此,该构造函数可以用来创建一个已经存在的颜色对象的副本,或者是将d3.hsl强制类型转换为RGB。字符串参数可以有多种形式: • rgb十进制- "rgb(255,255,255)" • hsl十进制- "hsl(120,50%,20%)" • rgb十六进制- "#ffeeaa" • rgb简写十六进制- "#fea" • 名称 - "red", "white", "blue" 输出的颜色将以红、绿和蓝的整数通道形式存储(整数范围:[0,255])。颜色通道可以通过颜色对象的属性 r, g 和 b 访问到。可支持的列表named colors可以通过CSS指定。如果是HSL空间的颜色,可以转换成在RGB空间相同类型的值,和 hsl.rgb类似。 # rgb.brighter([k]) 返回颜色的一个高亮副本。每个颜色通道值将乘以0.7 ^ -k. 如果参数 k 被忽略,将使用默认值1。通道值上限值255,下限值30. # rgb.darker([k]) 返回低颜色的一个亮度副本。每个颜色通道值将乘以0.7 ^ k. 如果参数 k 被忽略,将使用默认值1。 # rgb.hsl() 返回一个HSL空间的等值颜色对象。请查阅 d3.hsl 了解更多关于返回颜色对象的信息. 文档 CSS3 Color Module Level 3中有关于RGB到HSL转换的信息。该函数是上述转化的逆操作。 # rgb.toString() 将RGB颜色转换成一个十六进制数的字符串,如 such as "#f7eaba"。 HSL # d3.hsl(h, s, l) 通过输入的参数h, s和l,创建一个HSL颜色对象。创建新的HSL颜色,通过指定的色度h,饱和度s和亮度l。其中色度h取值范围[0,360]。饱和度和亮度取值范围 0,1。你可以通过访问返回的颜色对象的h, s 和l 属性值来获取颜色的通道属性. # d3.hsl(color) • rgb decimal - "rgb(255,255,255)" • hsl decimal - "hsl(120,50%,20%)" • rgb hexadecimal - "#ffeeaa" • rgb shorthand hexadecimal - "#fea" • named - "red", "white", "blue" 通过解析输入的字符串参数,创建一个HSL类型颜色对象。如果参数 color 不是一个字符串,参数就会被强制类型转换为字符串类型。因此,该构造函数可以用来创建一个已经存在的颜色对象的副本,或者是将d3.rgb强制类型转换为HSL。字符串参数可以有多种形式: • rgb十进制- "rgb(255,255,255)" • hsl十进制- "hsl(120,50%,20%)" • rgb十六进制- "#ffeeaa" • rgb简写十六进制- "#fea" • 名称 - "red", "white", "blue" 输出的颜色将以取值范围为[0,360]的色度和取值范围为[0,1]的亮度、饱和度作为属性值存储。红、绿和蓝的整数通道形式存储(整数范围:[0,255])。颜色通道可以通过颜色对象的属性h, s和l访问到。可支持的列表named colors可以通过CSS指定。如果是RGB空间的颜色,可以转换成在HSL空间相同类型的值,和rgb.hsl类似。 # hsl.brighter([k]) 返回颜色的一个高亮副本。每个颜色通道值将乘以0.7 ^ -k. 如果参数 k 被忽略,将使用默认值1。通道值上限值255,下限值30. # hsl.darker([k]) 返回低颜色的一个亮度副本。每个颜色通道值将乘以0.7 ^ k. 如果参数 k 被忽略,将使用默认值1。 # hsl.rgb() 返回一个RGB空间的等值颜色对象。请查阅d3.rgb了解更多关于返回颜色对象的信息. 文档CSS3 Color Module Level 3中有关于HSL到RGB 转换的信息。该函数是上述转化的逆操作。 # hsl.toString() 将颜色转换成一个十六进制数的RGB颜色字符串,如 such as "#f7eaba"。 HCL # d3.hcl(h, c, l) … # d3.hcl(color) … # hcl.brighter([k]) … # hcl.darker([k]) … # hcl.rgb() … # hcl.toString() 将颜色转换成一个十六进制数的RGB颜色字符串,如 such as "#f7eaba"。 L*a*b* # d3.lab(l, a, b) … # d3.lab(color) … # lab.brighter([k]) … # lab.darker([k]) … # lab.rgb() … # lab.toString() 将这个L*a*b*颜色转换成一个十六进制数的RGB颜色字符串,如 such as "#f7eaba"。 Color 提供d3.color的基础类型,支持你扩展D3增加行的颜色空间。这个类型能够自动地使用 d3.interpolate(通过instanceof d3.color识别)插入RGB。 # d3.color() 颜色类型的基础构造函数。 # color.rgb() 返回这个颜色的RGB值,必须被所有的颜色空间实现。 # color.toString() 转换为代表这个颜色的RGB十六进制字符串,例如"#f7eaba"。 边城译2014-4-6 咕噜校20141122