It’s quite common to use heat/contour maps when presenting time-frequency EEG findings. The colour scheme often chosen (and one that I like and use) is the “jet” colour scheme (see e.g., google image search time-frequency EEG). I’m wondering if there are any better colour schemes for presenting these plots, and/or guidelines for the presentation of such maps.
e.g., from R base library
#Volcano x <- 10*(1:nrow(volcano)) y <- 10*(1:ncol(volcano)) image(x, y, volcano, col = terrain.colors(100), axes = FALSE) # With Jet colours jet.colors <- colorRampPalette(c("midnightblue","blue", "cyan","green1", "yellow","orange","red", "darkred"), space="Lab") image(x, y, volcano, col = jet.colors(100), axes = FALSE)
Rainbow color maps, as they’re often called, remain popular despite documented perceptual inefficiencies. The main problems with rainbow (and other spectral) color maps are:
- The colors are not in a perceptual order
- The luminance bounces around: our eyes are mostly rods for luminance, not cones for color
- We see hues categorically
- Hues often have unequal presences (e.g., wide green and narrow yellow)
On the plus side:
- Spectral themes have high resolution (more distinguishable color values in the scale)
- There’s safety in numbers; such themes are still quite common
See Rainbow Color Map (Still) Considered Harmful for discussion and alternatives, including black-body radiation and grayscale.
If a diverging scheme is suitable, I like the perceptually uniform cool-to-warm scheme derived by Kenneth Moreland in his paper, Diverging Color Maps for Scientiﬁc Visualization. It and other schemes are compared with images in the ParaView wiki, though with a perspective of coloring a 3-D surface, which means the color scheme has to survive shading effects.
Recent blog post with more links and Matlab alternatives: Rainbow Colormaps – What are they good for? Absolutely nothing!
Recommendation: First try grayscale or another monochromatic gradient. If you need more resolution, try black-body radiation. If the extremes are more important than the middle values, try a diverging scheme with gray in the middle, such as the cool-to-warm scheme.
Images from the ParaView wiki page: