在您的页面上包含 raphaeljs 并将函数 estimateColorForValue() 和 toHex() 粘贴到代码中的某处。 estimateColorForValue(hue, value, darkestValue, brightestValue) 计算某个值的颜色,通过查看 [darkestValue-brightestValue] value 范围内的位置来插值颜色。 hue 在[0-1] 范围内:0.1 代表橙色棕色,0.4 代表绿色,0.8 代表粉红色,以及介于两者之间的更多颜色。色调的微小变化会极大地改变视觉颜色。
例如:estimateColorForValue(.1, 15, 1, 20),可以解释为,对于范围为 1 到 20 的数据,在橙色空间中计算值 15 的颜色。
toHex(estimateColorForValue(.1, 15, 1, 20)) ==> "#cf8415"
代码:
<script src="https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js"></script>
<script>
function toHex(hsb) {
return Raphael.hsb2rgb(hsb.h, hsb.s, hsb.b).hex;
}
function estimateColorForValue(hue, value, darkestValue, brightestValue) {
// Constants to determine saturation and brightness
var darkBrightness = 0.6;
var brightBrightness = 1;
var darkSaturation = 0.3;
var brightSaturation = 1;
// Compute saturation and brightness:
var gradient = (value - darkestValue) / (brightestValue - darkestValue);
var saturation = darkSaturation + gradient * (brightSaturation - darkSaturation);
var brightness = darkBrightness + gradient * (brightBrightness - darkBrightness);
return {h: hue, s:saturation, b:brightness};
}
</script>