我希望能够应用从红色到绿色到蓝色平滑混合的颜色图。
我很清楚,我需要使用 HSL 来制作这样的热图,然后将每个 HSL 值转换为 RGB 值来实现这个结果。但是我不知道如何实施解决方案。
下面是获取表格元素并确定应用哪种 RGB 颜色的代码部分。在这种情况下,它是针对“凝聚能”的表格类型
var td = document.createElement('td');
cellKey = sprintf('%s,%s', m1, m2);
if (_.has(table['cells'], cellKey)) {
var diff = table['max'] - table['min'];
diff = Math.max(1, diff); // prevent divide by zero when max == min.
var val = table['cells'][cellKey]['value'];
var pct = (val - table['min']) / diff;
var blue = Math.floor(255 * (1 - pct));
var red = Math.floor(255 * pct);
if (table['type'] == "Cohesive Energy") {
var blue = Math.floor(255 * (1 - pct));
var red = Math.floor(255 * pct);
td.style.background = sprintf('rgb(%d,%d,0)', red, blue);
}
这是网站http://muskoka.ices.utexas.edu/~fri/fridb/server.py
以下是一些示例数据:https ://docs.google.com/file/d/0B5gGZ4-SD7-ZU0RCWkFwN3JBYWs/edit?usp=sharing