I created a JS library, RainbowVis-JS to solve this general problem. You just have to set the number of items using setNumberRange
and set the start and end colour using setSpectrum
. Then you get the hex colour code with colourAt
.
var numberOfItems = 8;
var rainbow = new Rainbow();
rainbow.setNumberRange(1, numberOfItems);
rainbow.setSpectrum('red', 'black');
var s="";
for (var i = 1; i <= numberOfItems; i++) {
var hexColour = rainbow.colourAt(i);
s += '#' + hexColour + ', ';
}
document.write(s);
// gives:
// #ff0000, #db0000, #b60000, #920000, #6d0000, #490000, #240000, #000000,
You are welcome to look at the library’s source code. 🙂