我正在使用Jason Davies's Word Cloud Generator创建Word Cloud Generator,并且我想根据文本的重量设置 SVG 中的文本颜色。例如:
var tags = [
{ key: 'first', value: 780 },
{ key: 'second', value: 23 }
]
我想要键的颜色' 首先' 更高亮关键' 第二'
答案 0 :(得分:3)
d3的scale()函数也可用于生成颜色渐变。
参见下面的示例
var tags = [
{ key: 'first', value: 780 },
{ key: 'second', value: 23 }
];
var maxValue = d3.max(tags,function(d){ return +d.value});
var minValue = d3.min(tags,function(d){ return +d.value});
var centerValue = (maxValue + minValue)/2;
//color gradient
var color = d3.scale.linear()
.domain([minValue, centerValue, maxValue])
.range(["red", "white", "green"]);//define your gradient range colors
tags.forEach(function(tag) {
tag.color = color(+tag.value);
});
输出标记
[{"key":"first","value":780,"color":"#ff0000"},{"key":"second","value":23,"color":"#008000"}]
参考http://synthesis.sbecker.net/articles/2012/07/16/learning-d3-part-6-scales-colors