Search code examples
algorithmcolorscontrastcolor-mapping

Mapping a list of numeric values to colors


I have a list of numeric values. I may normalize the values if needed.

I need to transform this list to a list of colors (in HSL, RGB or any other color model — I can always do conversion later).

For any given value the color must be the same every time.

The more different two given numeric values are, the more contrast corresponding values should be.

All used colors must be as contrast to each other as possible (this is a soft limitation, rough solution would do).

Note that list is rather large (thousands of numbers), so simply squeezing all numbers into a single color channel would produce too dense results.


Solution

  • You could consider using a 3D space-filling curve through your chosen colour space. I'll second Mark's CIELAB suggestion, wish I'd known about that last time I had to solve a similar problem.