I remember reading about this a while ago but I forget where, so I'm trying to 1) confirm that I remembered correctly and 2) find a supporting reference (book, research article)

Suppose I have a data visualization like this:

enter image description here

Columns are groups, rows are categories. Groups are separated by hue, and the frequency of each cell is represented by saturation

The primary goal is to indicate that certain category/group combinations occur more frequently than others (via saturation)

We know that there are colour/lightness constancy effects that change the perceived characteristics of an object depending on its neighbours (think back to the dress colour illusion).

Does this extend to using different facets of colour perception (i.e. saturation and hue) in the same visualization? In other words, if you want to see how saturated a particular cell is (to determine its frequency), is your perception of that saturation impacted by the fact that theres a different hue next to it?

I'm wondering whether it might be better to do away with hue altogether, and instead just spatially separate the columns. That way I rely on using only one colour dimension (saturation) to provide information, but this only matters if I remembered all of this correctly

Suggestions for improving the visualization are welcome, but I'm primarily looking to understand whether this interaction between hue and saturation exists

  • You might want to use CIELAB color space rather than HSV – whatsisname Nov 2 '17 at 4:18
  • 1
    How would this work for users with low vision or colourblindness? – Andrew Martin Nov 2 '17 at 9:40

The human eye does not perceive changes in either hue or saturation evenly across the entire colorspace: a ten percent change in saturation of a yellow-hue color will be much harder to see than a ten percent change in saturation of a red-hue color, for example. We're much better at seeing changes in hue or brightness than we are at seeing changes in saturation -- your idea of dropping hue and instead relying solely on saturation would be basically the worst possible choice* -- but in none of those ranges will mathematically equal variation be perceived as being equally different colors.

* (Based on your sample image, though, it appears you're actually using the value, not the saturation.)

CIELAB color is an attempt at a more perceptually uniform color space: instead of hue, saturation and value it divides colors into a green-to-red spectrum, a yellow-to-blue spectrum, and a lightness spectrum. This would be a better choice than HSV if you wanted to try to use more than one color axis in the same chart.

But wait! There's also the Helmholtz-Kohlrausch effect, which describes how highly saturated colors are perceived as "brighter" than desaturated colors; chromatic adaptation, in which neighboring colors will have an effect on the perceived color; and color constancy in which our expectation has an effect on the perceived color. Not to mention all those pesky colorblind people (roughly one in every 20 people, a very significant number.)

TL;DR eyes are weird. Everything affects everything else, and the math never works out evenly. So keep it simple.

In your case: you're really only charting one dimension -- "frequency" -- in several groups. The groups are differentiated by position (each one is a column) so it's not strictly necessary to assign a color variation per group. You could easily do this entirely in grayscale, using brightness / value as the frequency axis.


What you have here doesn't actually need hue/saturation.

It's only 3 dimensions (group, category, prevalence) and the first 2 are already laid out in a 2d grid. So you just need 1 value to represent prevalence. Using merely brightness would suffice, where white is rare and black common or vice versa.

What you're probably vaguely remembering is a chart like this

[ http://www.datagenetics.com/blog/september32012/grid.png ] (PIN code prevalence map)

Which really only uses one dimension; a gradient from black through red to yellow. Or like landscape heightmaps often go from black to blue to green to brown. Only one dimension of information, but because of the color variety we can A) implement more levels, B) distinguish those levels better, and C) provide some subtle contextual information.

Your current image doesn't consistently connect hue and brightness (i.e. lightblue to medium purple, to dark red) but it could be used to indicate bias for example red for democratic majority, blue for republican, white for 50/50. In essence creating not a single ramp, but a parabola.

This answer is a bit rough, but I hope it makes sense.

  • I generally agree, but any resources to support specifically that the combination of hue and saturation is a bad idea from a human perception angle? – Simon Nov 3 '17 at 3:12

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.