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.