6 ms·
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 se
by krick 7y ago
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).
- kelsolaar 7y agoThe 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.
- keiru 7y agoThis is why I liked their C2 approach
- jsinai 7y agoThe 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.
- kuzehanka 7y agoThis 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.
- RivieraKid 7y agoFor 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.
- JulianMorrison 7y agoDo you want to see detail in the dark bits? That seems to be one area where the rainbow ones shine.
- crazygringo 7y agoI 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.
- jmpeax 7y agoOne 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.
- 91aintprime 7y agoThat'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.
- jsinai 7y agoIt 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.
- plufz 7y agoI 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."
- Terretta 7y ago> “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.
- plufz 7y agoYeah, sorry, didn’t want to mess up the quote. But I should have mentioned it, you are of course right!
- IggleSniggle 7y agoI 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.
- moultano 7y agoThe 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.