There's a really nice additive effect with patterns that can give a designer a way to show combinations of things together in a way that color really can't (bonus it's better for some visual impairments). For example, take a series of lines for one value:
\ \ \
\ \ \
\ \ \
/ / /
/ / /
/ / /
x x x
x x x
x x x
I thought this was pretty awesome when I first saw it posted here, but unfortunately haven't found a good use case for it yet.
Thanks for sharing this again, had been a while since I thought of this library!
- structure preserving hash that automatically distributes categorical data across buckets -- this would be great for dashboards; on the job, we have dashboards with color coded dashboards but some of the colors are way too close for comfort and make visual communication difficult
- Halftoning for animation -- some of these seem like they'd be really neat if applied towards either CG animation or stationary animation as an alternative (or combined with) cel shading. I wonder if there's existing state of the art here for doing this with shader computation?
I guess one reason why people don’t talk about it much is that the color blind have good strategies to deal with it? It must be confusing at times?
It's not that the colors are indistinguishable per se, always. They are hard to distinguish under certain conditions such as:
a) size of the elements of the same color. If half my screen is in one color and the other in different color, it's very easy to distinguish them and say which one is what. If on the other hand you have just a few pixels, it's much harder to say what color they are.
Recommendation for app devs: don't use only 1px red border to show validation errors in forms. It's almost impossible for me to say that the border is red and not black.
b) closeness to each other in terms of distance. Similar colors far away from each other are easier to recognize vs when they are right next to each other (like in the map).
c) Similarity between colors. If the colors are not used for scale, use very distinctive colors. I always take my colors from: https://colorbrewer2.org/ based on the use-case. This has already been researched and it works.
d) movement. It does not help in recognizing colors.
These conditions don't occur that often in "real life" when walking, shopping, etc. They are mostly annoying on screen and paper.
Regarding compensation techniques:
If it is not work related, I just don't bother and don't put any effort. There is a cool map on reddit, and I can't read it because of the colors? My loss, not gonna spend time on it.
My biggest pet peeve: sport team outfits. Sometimes certain teams play vs each other and I cannot distinguish who is who. That is maddening. Why would you play black vs red when white vs red would be 100x more distinguishable. There should rules about minimal necessary contrast between the jerseys. I can't watch some matches so I don't watch them. I like teams with blue, yellow, white colors. Maybe that's why GSW is appealing to me :)
When I play FIFA with friends, I need to tell them which jersey variant to choose so I can comfortably play and have some chances. You cannot do it online games :( I wish I could select what I see on my machine. I wish there was a setting to use artificial jerseys of high contrast. Or make my opponent jerseys always black or always white and let me pick the clothing for my side. There are some colorblind options in FIFA but I don't find them good enough. They don't solve the problem fully.
If it is work related and I cannot decipher it, I will politely complain that someone used colors only to encode some information and I cannot process it. I will recommend to use something additional (words, borders, tooltips, patterns, anything that makes sense).
I also notice that kind of issues when our engineers work on dynamic maps or charts, and I try to bring it to people's attention. It's a lost battle in the grand scheme of things, but I keep fighting.
I believe it's easier in big companies because the probability of having a colorblind stakeholder is higher. In small teams (<= 7) you might not have a single colorblind person who could share their perspective and point out the problem.
I guess it works that way with everything: race, gender, translation and localization, and other disabilities, but I can mostly comment on that one thing.
Some existing projects you may want to check out:
* http://data-illustrator.com/ (dead?)
* https://charticulator.com/ (was dead, looks slightly alive now)
* http://ddg.namwkim.org/ (dead?)
My inspiration came from Bret Victor's Drawing Dynamic Visualizations (1). Though I'm taking a slightly different approach. Brett’s data is declarative, but drawing is procedural (in steps) where mine is all declarative. I think Brett's approach is more powerful but doesn't lend itself as nicely to normal vector drawing UX.
Was a bit disappointed that the Italy and US maps were just PNGs. Can these not be rendered in browser?
I wish there was a better explanation of the formula for defining your own pattern (the last example).