This question was in part motivated by this MathematicaSE question and Matteo Niccoli's geophysics blog post on color schemes. The underlying concept of Niccoli's perceptually-balanced color schemes was to create a color scheme that approximately enforces L*-linearity. For example, Niccoli presents the following illustration:
Throughout the 7-post series, Niccoli argues that perceptual intensity of a color is largely due to its L*-component, and thus if magnitude information is present, it should be encoded via L*; likewise, for phase or azimuth encoding, a constant-L* map should be used. Corroborating this, Bernice Rogowitz wrote
The perceptual reason your method works has to do with the fact that magnitude perception is based on the luminance component of the color scale. Luminance “carries” magnitude information. The goal is for equal data steps to be perceived as equal perceptual steps, and this is well approximated by having the luminance component be monotonic.
I've taken this advice to heart when creating color schemes, and have had both great and bad results with it. Since my question title indicates concern about the use of L*, I'll get straight to the bad. Consider the following map f
from the interval [-2, 2]
to RGB space:
Here is a plot of 2 UnitTriangle[Sqrt[(x + 1)^2 + y^2]] - 2 UnitTriangle[Sqrt[(x - 1)^2 + y^2]]
, ie a pair of cones (this SE site unfortunately does not support MathJax), with the previous color scheme:
This function is radially linear, and thus the banded appearance is due to artifacts induced by the color scheme. To that end, here is a picture of the scheme's L*-profile:
It's evident that there is a rough correspondence between bands in the pair of cones and regions of low-modulus L*-derivative. To that end, let's straighten things out!
With a bit of math, it's possible to determine a function g
such that the composition fg
has roughly constant L*-derivative. Here is a picture of the resulting L*-profile:
And here is the result of applying the resulting function to the same pair of radial cones:
Now (at least on my monitor) while it is evident that while this is better at representing height data than the uncorrected scheme, it still has noticeable artifacts, including a sudden jump from red to yellow and a sudden pointlike transition from yellow to white in the right cone, and a semi-"flat" region after blue turns to light blue in the left cone, along with a white spot of larger radius than is seen in the right cone. So my question is:
- If L*-linearity does not give a perceptually-linear appearance, what metric gives the complete information?
My first guess was that L* alone can't be the complete picture (since many different colors have the same L* values). Instead, the RGB colorspace can be endowed with the CIE2000 metric (not sure if it satisfies the triangle inequality, but whatever LOL), and this induces a "perceptual velocity" for any path parametrized in colorspace.
Here is a plot of the perceptual velocity of the previous L*-corrected color scheme:
Notice the correspondence between sharp features in the previous cones picture and lumps of high CIE2000 perceptual velocity. From this, I concluded that perhaps CIE2000 velocity is another good measure of the quality of a color scheme, and applied the previous correction mathematics to get some color schemes with constant perceptual velocity; like with L*-correction, I've had both good results and bad results, but I think this question is long enough as is so I won't elaborate unless someone asks.
Just to reiterate: what is the proper metric on color space that one should aim to make uniform when constructing color schemes for data visualization purposes? Alternately, is there no single metric that covers everything? It seems like the whole topic of color is incredibly complex.