News for hackers. Stuff that matters.
Re:Turbo, an Improved Rainbow Colormap for Visualization by krick on Wednesday August 21, 2019 @05:06AM (#20755602)
While arguments in the blogpost are mostly compelling (perhaps the most important to me is Jet/Turbo being far more high-contrast in the "colder" regions), I see Inferno as vastly superior still, mostly for the same reasons it was superior to Jet. All these colormaps are intended to represent one-dimensional gradient, as in "from hot to cold" and it is completely obvious when looking at Inferno. Jet & Turbo give a false impression of non-one-dimensionality. It might be a matter of being used to the colormap in question, but Jet is as old and common as it gets, and it still is not self-evident to me that the dark red is hotter than the very light yellow. I mean, obviously I know that, but I will tell you instantly without thinking what is the hottest and coldest regions on Inferno image, and I am significantly more likely to make a mistake when I'm tired with the Jet (and, presumably Turbo — for the same reasons).
Re:Turbo, an Improved Rainbow Colormap for Visualization by crazygringo on Wednesday August 21, 2019 @09:20AM (#20756868)
I have to disagree.

If you want to represent a one-dimensional gradient where what is most important is "hot vs cold", i.e. the extremes, then you shouldn't be using a colormap (rainbow) in the first place, you should be using a direct gradient instead, whether grayscale or interpolated between two nearby colors (e.g. red/yellow).

Colormaps are for where highlighting local variation is important -- more important than indicating whether something is closer to one extreme or another. In the examples, this means being able to distinguish the patterns of the objects. In math plots, it means helping to see the shapes of curves. In weather maps, that means judging variation within your state, even while the map ranges from Alaska to Florida.

For this, it's most important to be able to maximize contrast in local differences but also have the perceptual rate of change be roughly comparable.

Rainbows maximize contrast using hue, because our eyes can simply distinguish so much more than with just brightness. Turbo makes the rate of change more constant than Jet. And Jet/Turbo most importantly double the resolution that Inferno has, going from dark-bright-dark rather than just dark-bright.

Re:Turbo, an Improved Rainbow Colormap for Visualization by twic on Wednesday August 21, 2019 @10:31AM (#20757556)
The ultimate in highlighting local variation is something like the Glasbey colourmap:

https://imagej.net/Glasbey

https://www.bioss.ac.uk/people/chris/colorpaper.pdf

EDIT the "hue ramps" style of colormap is also quite interesting, although i can't find an example, and can't be bothered to create one:

http://soliton.vm.bytemark.co.uk/pub/cpt-city/imagej/tn/hue_...

Re:Turbo, an Improved Rainbow Colormap for Visualization by jmpeax on Wednesday August 21, 2019 @09:58AM (#20757194)
One point to keep in mind is when you have maxima and minima next to each other then Jet/Turbo is not the colormap you want, since it's very hard to distinguish dark blue and dark red.
Re:Turbo, an Improved Rainbow Colormap for Visualization by 91aintprime on Thursday August 22, 2019 @10:22AM (#20768360)
That's a very good point, and the converse as well: Jet/Turbo is good when maxima and minima are nonadjacent, such as in continuous functions.
Re:Turbo, an Improved Rainbow Colormap for Visualization by jsinai on Wednesday August 21, 2019 @10:28AM (#20757506)
It depends on the use case.

I find Inferno/Viridis perfectly good for representing one-dimensional gradients. They're easier to glance at then a single hue and show contrast between min/max better. Greyscale and single hue can also make it hard to notice small variations.

I can see Turbo being useful for heatmaps where you want to notice differences rather than variation between hot and cold.

In general though I would say that choice of colormap is subjective and there isn't a general rule for when to use which colormap. I usually plot the same image in multiple colormaps and choose the one which helps me the most for that usecase. Another person may choose differently.

Re:Turbo, an Improved Rainbow Colormap for Visualization by plufz on Wednesday August 21, 2019 @09:32AM (#20756963)
I totally agree. Hard not to think about Edward Tufte when this comes up: "In color maps, use a single hue, Don't use up the entire color spectrum, or even all of a hue's levels. Particularly avoid Roy G. Biv (red, orange, yellow, green, blue, indigo, violet), the color spectrum of the rainbow. It's good physics, but poor human factors. Like all multi-hue color maps, the non-equidistant hue changes are perceived as especially important contours, which they usually are not. Furthermore, the lighter middle parts of the spectrum are often perceived as the higher values. Finally, one needs to constantly remind oneself which color means high vs. low values. Using a single hue with variations in intensity allows instant interpretation, multiple color maps without ambiguity, and leaves graphical space for layering and separation."
Re:Turbo, an Improved Rainbow Colormap for Visualization by Terretta on Wednesday August 21, 2019 @01:46PM (#20759486)
> “Like all multi-hue color maps, the non-equidistant hue changes are perceived as especially important contours, which they usually are not.”

That’s basically the objection this mapping is aiming to address.

Re:Turbo, an Improved Rainbow Colormap for Visualization by plufz on Wednesday August 21, 2019 @04:06PM (#20761125)
Yeah, sorry, didn’t want to mess up the quote. But I should have mentioned it, you are of course right!
Re:Turbo, an Improved Rainbow Colormap for Visualization by kuzehanka on Wednesday August 21, 2019 @06:20AM (#20755952)
This is all true.

Where jet and other non-uniform maps are useful is in highlighting small fluctuations in the value. It's less about z1 > z2 and more about z1 != z2 across the image plane.

A similar problem happens with datashader in histogram normalisation mode. It's great for highlighting small variations in the underlying density and revealing detail that you'd otherwise never see, but worthless for trying to compare one density to another by eye.

Horses for courses.

Re:Turbo, an Improved Rainbow Colormap for Visualization by IggleSniggle on Wednesday August 21, 2019 @10:24AM (#20757462)
I read your comment before reading the blog, and I was thinking "yeah, Inferno is probably better," until I started getting to images where distinguishing slight variation was clearly important. That was my "ah-ha" moment for Turbo.

Computers are already really good at dealing with large-scale details. The human eye can notice edge-case scenarios in a large dataset pretty rapidly. I'm sold on Turbo because it lets your eyes change scale on the fly. You can be looking at the large scale and rapidly focus in on particulars within a smaller band, and back out again, as needed.

Re:Turbo, an Improved Rainbow Colormap for Visualization by RivieraKid on Wednesday August 21, 2019 @07:25AM (#20756278)
For some use cases, the uniform colormaps are not the right approach in my opinion. They simply don't have have sufficient resolution.

I've tried inferno and viridis to visualize weather radar data, and... rainbow-like colormap simply works better. And this is true for most weather data like wind or temperature. With a uniform colormap, you wouldn't be able to see local variations, e.g. differences in temperature within the UK.

Re:Turbo, an Improved Rainbow Colormap for Visualization by kelsolaar on Wednesday August 21, 2019 @06:04AM (#20755881)
The fact that luminance peak, i.e. green, maps to the center of the input domain for Jet/Turbo is also very confusing and creates a strong emphasis for that region. It is unlikely to be a very desirable quality, especially when evaluating depth images like in their examples.
Re:Turbo, an Improved Rainbow Colormap for Visualization by jsinai on Wednesday August 21, 2019 @10:20AM (#20757411)
The luminance peak in the center is by design - that's clear in its parabolic gradient. Whether this is desirable or not depends on your use case.

On this point I don't see Turbo is being a do it all colormap. In the depth comparison images I still see Inferno and Viridis being superior and personally have no confusion between which spheres line up with which rings. Turbo in fact confuses me on this by introducing the false 2D color gradient.

Where I see Turbo being useful, as others have pointed out, is for heatmaps. I personally find Inferno's low end contrast being problematic and usually resort to Spectral for picking out details. If you can live with the fact that the lightest part of the chair in the test image is rendered darkly in Turbo (compare with Inferno), then Turbo is great for purely picking out detail (and taking brightness with a pinch of salt).

In the end, it depends on your usecase. Use a linear colormap when appropriate and vice versa.

Re:Turbo, an Improved Rainbow Colormap for Visualization by keiru on Wednesday August 21, 2019 @09:54AM (#20757153)
This is why I liked their C2 approach
Re:Turbo, an Improved Rainbow Colormap for Visualization by JulianMorrison on Wednesday August 21, 2019 @08:48AM (#20756729)
Do you want to see detail in the dark bits? That seems to be one area where the rainbow ones shine.
Re:Turbo, an Improved Rainbow Colormap for Visualization by moultano on Thursday August 22, 2019 @01:11AM (#20764838)
The cases where I find it most useful to display data with a rainbow-like color scale are where the data is in log-scale. In that case, I really want to convey the fact that there are enormous differences in the data in every small change of color.