# What your brain does with colours when you are not “looking” – part 2

In What your brain does with colours when you are not “looking”, part 1, I displayed some audio spectrogram data (courtesy of Giuliano Bernardi at the University of Leuven) using 5 different colormaps to render the amplitude values: Jet (until recently Matlab’s standard colormap), grayscale, linear lightness rainbow, modified heated body, and cube lightness rainbow. I then asked readers to cast a vote for what they thought was the best colormap to visualize this dataset.

I was curious to see how all these colormaps fared, but my expectation was that Jet would sink to the bottom.  I was really surprised to see it came on top, one vote ahead of the linear lightness rainbow (21 and 20 votes out of 62, respectively). The modified heated body followed with 11 votes.

My surprise comes from the fact that Jet carries perceptual artifacts within the progression of colours (see for example this post). One way to demonstrate these artifacts is to convert the 2D map into a 3D surface where again we use Jet to colour amplitude values, but we use the intensities from the 2D map for the elevation. This can be done for example using the Interactive 3D Surface Plot plugin for ImageJ (as in my previous post ). The resulting surface is shown in Figure 1. This is almost exactly what your brain would do when you look at the 2D map colored with Jet in the previous post.

Figure 1

In Figure 2 the same data is now displayed as a surface where amplitude values were used for the elevation, with a very light sun shading to help a bit with the perception of relief, but no colormap at all. to When comparing Figure 1 with Figure 2 one of the artifacts is immediately recognized: the highest values in Figure 2, which honours the data, become a relative low in Figure 1. This is because red has lower intensity than yellow and therefore data colored in red in 2D are plotted at a lower elevation than data colored in yellow, even though the amplitudes of the latter were lowest.

Figure 2

For these reasons, I did not expect Jet to be the top pick. On the other hand, I think Jet is perhaps favoured because with consistent use, our brain, learns in part to accommodate for these non-perceptual artifacts in 2D maps, and because it has at least two regions of higher contrast (higher magnitude gradient) than other colormaps. Unfortunately, as I wrote in a recently published tutorial, these regions are randomly placed in the colormap, and the gradients are variable, so we gain on contrast but lose on faithfulness in representing the data structure.

Matt Hall wrote a great comment following the previous post, really making an argument for switching between multiple colormaps in the interpretation stage to explore  and highlight features in both the signal and the noise in the data, and that perhaps no single colormap is best overall. I agree 100% on almost everything Matt said, except perhaps on the best overall: looking at the 2D maps, at least with this dataset, I feel the heated body could be the best overall colormap, even if marginally. In Figure 3, Figure 4, Figure 5, and Figure 6 I show the 3D displays obtained by converting the 2D grayscale, linear lightness rainbow, modified heated body, and cube llightness rainbow, respectively. Looking at the 3D displays altogether gives me a confirmation of that feeling.

What do you think?

Figure 3

Figure 4

Figure 5

Figure 6

## 7 thoughts on “What your brain does with colours when you are not “looking” – part 2”

1. Thanks for the post Matteo.
I agree with you that “modified heated body” is probably the most appealing in this case, although “linear lightness rainbow” has become my default colormap and, maybe, I’m getting a bit biased on the choice 🙂
Among the last 4, I’d say that the “cube llightness rainbow” is the one that, to me, conveys the most difficult information to interpret.

• Ciao Giuliano
It took me a while to get this one finished, but I think it came out interesting.

Have you tried Parula, the new default Matlab colormap?

The cube lightness rainbow is less succesfull because it has the least total lightness contrast (60% of the full 1-100 range). This is cvclose to the minimum contrast that should be used in any colormap (according to Rogowitz and Kalvin in The” Which Blair Project”: a quick visual method for evaluating perceptual color maps).

— Sent from Mailbox

• Thanks Evan
I’m not done yet, there’s one more post in the blitz.
🙂
About the link: sometimes a post will get published with the date of the first draft instead of the date it was posted. If I change it, then the email link is lost. I have to live with this. Would there be a workaround with wordpress.org?

3. Matteo – two guesses about the votes for jet: familiarity, and a perceived “greater contrast.” I have heard the contrast comment from a MATLAB user who preferred jet to parula for that reason. jet goes dark to bright in the lower third and bright to dark in the upper third (roughly) of the colormap, so within certain data ranges there is a greater contrast. (For this discussion, I’m defining contrast as rate of change of lightness.) Parula, as well as the other colormaps shown above, go dark to bright over the whole data range, so the rate of change of lightness is lower.

• Hi Steve