Creating color palettes

6 Jul 2011 - 1:57pm
5 years ago
2 replies
1758 reads
Ryan Freedman

I'm in the progress of designing a set of charting, graphing, and data viz controls that will be incorporated into an enterprise Windows application that displays loads of financial data. I've looked at a lot of the 'out of the box' offerings, and while the functionality is largely passable, I haven't been particularly impressed with the aesthetics on most offerings. No hate mail please - I realize the "shiny" factor is more for my boss than for my users :)

Admittedly, a lot of the staleness can be addressed easily enough (applying some subtle gradients, borders, etc). But our software has always been highly configurable, and our users expect the ability to fine-tune everything, so I'd also like to allow them to pick their own palettes rather than relying on the 'factory' colors.

That said, our support guys will not be pleased the first time a client calls to complain that they're unable to distinguish between the 43 shades of mauve being used in their charts. Obviously, we'll want to have some guidelines in place

How many custom colors would we want to support? What, if any, color "categories" do we want to provide for the users?

Does anyone have experience picking color palettes like this? Is there research I've been missing out on? I'd love to hear how similar problems have been approached in the past.

Off the top of my head, I'm thinking:

- Allow users to choose 3 or 4 main colors (complimentary). We'll want some logic in there that ... "encourages" ... people to select colors that are recognizably distinct. (Specifically, we'd require a minimum variation in hue and/or saturation)

- Allow users to choose a similar number of secondary/accent colors (leaning again towards a complimentary color set, but contrasting somewhat with the main colors)

- Maybe we allow users to pick a few colors that are always associated with a certain data attribute? (e.g. you can pick a saturated red-orange to represent urgent information, regardless of the other colors you're using)

- For larger data sets, we can automatically create "new" colors by averaging the colors already in the palette

Is there a sweet spot that will provide enough color differentiation for most data sets without requiring too much thought/effort from the end user? Color theorists of the world, please advise.


6 Jul 2011 - 2:46pm

I was faced with similar conundrums when trying to bring in some customization to our charts. I also had the challenge that some charts might have hundreds of bars, lines or slices - depending on the data feeding them.

I ended up using to generate 13 color-blind safe color palettes (some diverging, some sequential) each with 10 colors. I then wrote an algorithm where, if the chart required more colors than available in the palette, it would start over with the first color and then modify the color to make it lighter if it was dark or darker if it was light (obviously doesn't work well w/ sequential palettes - but solved some corner cases w/ the others).

I then created a couple custom palettes based on some various theme (autumn, rainbow, playground etc.) as well as some greyscale palettes.

All in all we've now got 17 color palettes to choose from of quite a variety. ColorBrewer helped a LOT - esp. w/ the color-blind-safe palettes.

6 Jul 2011 - 6:27pm
Don Dunbar

Ryan, if you are discussing color choices for information visualization, then your color choices are considered limited. To answer your question, yes there is research in this area. For some quick references to introductory material that actually cover this in detail you should see the book "Visual Thinking for Design" by Colin Ware, it is a paired down version of his more famous book "Information Visualization: Perception for Design" both are excellent resources for working with information visualization and address the question you have in detail with references to the research.  If you are not familiar with Dr. Ware, he has degrees in Cognitive  Psychology, Graphic Design and Computer Science and so brings some great insight into this area. 

I didn't directly answer your question because I thought you would rather get a more detailed account about making these choices than a simple comment could provide.  But, I do hope this helps.

Syndicate content Get the feed