You are here

Rainbow ?

The rainbow colormap is not the best choice to represent data using pseudo colors. This article is a study (using "Higgs data") showing why the rainbow colormap can be misleading and what could be better alternatives.



How to avoid misleading data representations by arbitrary color scales has been also discussed in a paper by Zeileis et al.:

'Escaping RGBland: Selecting colors for statistical graphics'

They propose to use a HCL based color scheme (Hue-Chroma-Luminance), for which only Hue is varied by the number value it is supposed to represent.

An implementation for ROOT can be found at:

I have tested your code. The bad effects described in this article are less visible. In particular the none existing structures are less visible. Still there is some yellow band quite (but less) visible. (I can email you the picture if you wish). Thanks for this code. It can be an other palette.

My understanding is that the default "raibow" is good for {1, -2, 3, -2, 1, -1, 2, -1}, but bad for {1, -2, 3, -2, 1, -1, 2, -1000}

So, are there any plans to change the default colormap in ROOT? Most people just use whatever is the default...

One of the aim of this article was precisely to sensibilize users on the fact that the default color map should be changed. May be going to the "dark body radiator one" might be an option.

We also need do have color maps more directly linked to the data values. For example changing at the 0 value like the example in the article.

While the author of the piece is obviously aware of it, I'd like to point people to an excellent article from IBM called Why Should Engineers and Scientists Be Worried About Color?. It overlaps a lot with the article here and covers some excellent points. Every time I see a scientist use a rainbow plot when it's not appropriate (i.e. most of the time) I lose a little respect for them.

Hi Matt. Actually one of the author of the article we wrote for the ROOT web site is Bernice E. Rogowitz, who is the author of the article you are referring to. :-) Our goal here was to put that in the HEP/ROOT context.