Take the 2-minute tour ×

I am looking for pointers on how to pick a set of colours (or a colour gradient) that are clearly distinguishable, for use in scientific figures. Was there any systematic research on this? If yes, I'd appreciate some links.

When creating scientific figures, colour is often used to distinguish elements. One example is lines in a plot:

Mathematica graphics

Another example is a colour gradient to denote values:

Mathematica graphics

I'm interested in two questions:

  1. How can I pick the largest set of colours that are still distinguishable from each other, for use in a plot? Similarly, what colour gradient will allow the eye to discern the largest set of values and detect the slightest change? Are there colour schemes made specifically for this? I'm looking for something that works well both on-screen and in print.

  2. How can I pick a set of colours (or a gradient) that are still distinguishable enough when converted to greyscale, but the contrast is enhanced when they're viewed in colour? Is there a colour gradient that is not much worse in this respect that a full-white to full-black gradient when converted to greyscale, but gives significantly enhanced contrast when reproduced in full colour? (Take e.g. my example figure from above with the rainbow colour: it has excellent contrast in colour, but it's unusable in greyscale. Many scientific journals will publish figures in colour online, but ask for figures that are usable in greyscale too, in the print edition.)

share|improve this question
Related: graphicdesign.stackexchange.com/questions/3682/… –  e100 Jun 15 '12 at 17:15
@e100 That post answers my question about maximum contrast discrete colour sets. I'm wondering if I should reformulate the question now or even split it in two. The remaining questions are maximum-contrast continuous colour schemes and colour schemes that survive a greyscale conversion (a requirement of some journals---though at this point I'm thinking of sticking to greyscale-only for everything) –  Szabolcs Jun 16 '12 at 9:43
@Szabolcs I think that every of three questions you mentioned is hard enough and deserves to be separate although they are deeply connected inherently. I spend some time thinking on this but just found the real scale of the problem: it requires the true perceptual colorspace. –  Alexey Popkov Jun 16 '12 at 13:41
Such colorspace can be found only by taking smart and large-scale experiment on human color perception and the set of colors obviously will depend on the color of background and even on how the color will be reproduced: by paper or by monitor and how... –  Alexey Popkov Jun 16 '12 at 13:42
add comment

2 Answers

For your first question you might want to look into a color wheel, here's an example. Just divide the 360 degrees of the wheel into as many parts as you have required elements and you'll get colors that contrast from each other as much as possible.

For example, if you have 3 elements, your colors would be red, blue and lime.

As per figures usable in black and white, you'll often find that patterns might help identify different graphs, where such application is possible. Where using patterns isn't possible your best bet is selective desaturation where different hues result in different shades, see an image example over here.

Selective desaturation applied to your original image can be seen here: enter image description here

share|improve this answer
add comment

Here's a handy splash of science.

  • Your eyes' retinas have receptors for red, green and blue light (cones) as well as receptors for general light levels (rods)
  • Between your eyes and visual cortex, there's a step (the LGN) where colour information is converted into opposing pairs: red:green, blue:yellow, and black:white. Yellow is created in special cases where red and green are in balance and blue is low, and most browns are effectively dark or low-saturation yellows (higher red and green compared to blue). You can see how these pairs are opposed to each other with after images - stare at a bright light of a colour, and look away, and the after image effect you will see will be made of its opposite colours.

So that gives you the four most clearly differentiable hues (plus no black or grey: no hue). Within each of these, you can use differences in lightness and saturation to create more colours. If you need still more colours, you can take mid points between these four hues, and then vary lightness and saturation again. (be careful with lowering saturation and raising lightness too high as it reduces the hue contrast).

Bare in mind that yellow is a special case - it is characteristically bright because it's being fueled by the activation of two types of receptors, not just one.

The question about how these convert to greyscale is important but I think probably best answered seperately. There are differences (e.g. reds tend to be darker) but it depends on other things like how the convesion is done, etc. The colour intensity chart from the above link about yellow might help as a starting point:

enter image description here

Two things to bare in mind:

  • Colour scales aren't perceived linearally. In colour heatmaps, like the second image you post, colour scales are good for helping specific values to be perceived, but this comes at a cost that the overall picture of what is high or low compared to what is harder to intuitively percieve. More info on this here. Use such 'rainbow scales' only when getting specific values from a visualisation is more important than seeing the bigger picture (usually, this means rainbow scales are okay for visualisations that are for analysis by experts, but bad for visualisations that are for general communications purposes)
  • A surprisingly high number of people (particularly men) are colour blind. In particular, something like 10% of men struggle to percieve differences between red and green - seeing those colours as the same hue. These people can usually make an educated guess based on lightness levels, but it's difficult and so it's best practice to make sure that where red and green communicates menaing, there are other ways to tell these colours apart than just hue. Use colour blindness simulation tools like vischeck to test designs, don't rely on just converting to greyscale as that's not an accurate simulation.
share|improve this answer
add comment

Your Answer


