根据该值在气泡图上设置气泡颜色

  • 本文关键字:气泡 设置 颜色 javascript
  • 更新时间 :
  • 英文 :


我必须根据数组中的数字设置气泡图上每个气泡的颜色。我唯一知道的是:

  • 如果该值等于3,则颜色必须为"#a68500"
  • 如果该值等于0,则颜色必须为"#fff79b"

因此,如果数组中的一个元素的值为"2.5",我必须在色标中找到一种表示该数字的颜色。

我使用的是dojox.charting,但我不知道如何创建一个基于值返回颜色的函数。

任何想法都会有帮助!!!!

所以在这里,我认为您将希望对数值rgb值进行一些基于百分比的计算。如果您有rgb到hex函数可用,请利用它们,如果没有:

var r,g,b,rgb = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})([a-fd]{2})?$/i.exec(color);
if( rgb.length == 5 ) { //argb hex format
    r = parseInt(rgb[2], 16);
    g = parseInt(rgb[3], 16);
    b = parseInt(rgb[4], 16);
    }
else {
    r = parseInt(rgb[1], 16);
    g = parseInt(rgb[2], 16);
    b = parseInt(rgb[3], 16);
}

因此,对于r:0是ff,3是a6,你将转换为0:255和3:166,这将使2.5处于~181返回到Hex将执行181.toString(16);

function getInterpolation(x, min1, max1, min2, max2) {
    return Math.round(x/(max1-min1)*(max2-min2)+min2);    
}

对每个RGB组件使用类似getInterpolation(2.5, 0, 3, 0xff, 0xa6);的方法。如果你经常在循环中使用这个,你可以将最小值和最大值更改为一些常量值。

最新更新