ページに 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>