-
Notifications
You must be signed in to change notification settings - Fork 844
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Discuss] tradeoffs on the single-palette guidance for data visualization #3742
Comments
I had a zoom call with @monfera to try to understand this issue. And the idea is to support the use of the As we can see, when we have situations like the following one (legends on top) the I agree that the @cchaos what do you think? |
I agree that the behind text variant is better suited for charts that have text directly on top of the color. Hence why the palette itself was created. 😉 The decision point is: Dashboards using the same "color palette" for all charts and using the same color for the same series across those charts.If you use To those with some sort of eye sight deficiency would the differences between the green variants actually indicate to them different series? They look similar but they're not. What we cannot do is change the bar charts to use the behind-text variant because the contrast levels for graphics clearly states that there needs to be a 3.0 ratio which the behind text variants do not. In fact, I think even some of our regular color blind palette colors aren't quite at 3.0 either. |
Thanks @miukimiu and @cchaos for having spent work on it. You're right, it doesn't seem doable if the area chart and histogram bar chart can't use Legends look solvable: bars and pie/treemap could both use To match the I'd need to learn to avoid false tracks - is this a requirement per categorical color in dataviz, or only for general UI? Tableau is using some colors lighter than in Quantitative palettes have light ranges too, maybe contrast rules are different for them: With only two categories, Tableau's colors are more discernible, whether viewed in color or grayscale: Moving the goalpost further still, we could eventually increase discernibility by front-loading the category palette:
|
...@flash1293 I may have read too much into the colorwheel order in the style guide - is Lens / Kibana at liberty of picking colors in a different order? |
@monfera As there is an abstraction layer between the EUI code and the Lens chart we could put this kind of logic there, but should we? Is there a reason the palette shouldn't be applied in the same order everywhere? |
@flash1293 I didn't mean to limit the question to Lens only; if Kibana, and Lens within it currently picks colors from the then the discernibility between adjacent picks is reduced as it follows a rough color wheel order, and the lightness isn't always too different either. For example, the first pick is green, the second pick is blue, which is quite close to green in terms of both chroma and lightness, see the previous comment. Most of the adjacent colors are fairly close. Most charts that pick colors, eg. pie, stacked bar chart etc. put subsequently picked colors side by side. The effect is, optimization against contrasty neighbor colors. There are some color palettes that also assume that users will pick colors from the palette in sequence, but they introduce light/dark striping to be more contrasty in lightness eg. ColorBrewer |
@monfera Makes sense, sounds like we should change the order of |
The main reason we haven't changed the main order of I'd be careful, though, using Color Brewer as "good" examples. They have some interesting advice, but I'm not sure they've actually tested their palettes. For instance the palette above that you presented does not pass any of the color-blind simulations. Use this tool for palette checking: https://gka.github.io/palettes Though as soon as you start tinting any of the original palette colors, you'll lose that 3.0 contrast against the background, though you would gain better contrast ratios to siblings. It's a really balancing act. Some links to read more:
All this said, if we had graph alternatives - captions, screen reader descriptions, tables, other kinds of alt-text to describe the charts across the board then we wouldn't have to rely so heavily on ensuring contrast minimums. But we dont. |
Also, here's the Issue where I discuss in great detail the latest evolution to the current palette #2238 |
Thanks @cchaos for your comments and links. The more details you share, the more tradeoffs I learn about. I value the ton of work and insight you put into palette iterations, doing it along all the other workstreams you've simultaneously run 🙇
There seems to be some shared feeling on the issues, yet no low hanging fruit for an improvement. The pie/treemap cells and bars are not as appealing and lightness-discernible as they could be, I respect past design iterations, conflicting goals (eg. Tableau palette extends well into darker colors while ours doesn't) and much of the backward compatibility angle. I tried to raise things that had been considered, thanks again for taking the time to answer and link. |
Just to throw something out there in case it hasn't been considered (haven't seen it mentioned here yet). If there aren't enough colors to go around for everything, shading can also be used to differentiate segments. This isn't a solution for every chart or dashboard but could be something that apps could opt into themselves without having to force a change into EUI. (By shading, I mean "striped" vs "solid" vs "dotted" as examples.) I don't think there's a single silver bullet to this problem that will solve all the problems, so y'all might need to take multiple strategies and apply them individually in specific areas. |
@myasonik indeed, patterns are great (enlisted eg. here) while they have some limitations and optical illusions or interference with the overall shape can be a concern. There are related redundant encodings eg. markers of different shape per line like here, also not without drawbacks. The link has calls for avoiding overuse of color; going round and round yielding tens of colors/patterns won't be very readable anyway 😃 |
In this case we can also do the re-ordering as part of the Kibana side Did we come to a conclusion about how to treat It's probably not that easy, but should we introduce a new palette that works behind text but is visually closer to the regular color blind palette to use for partition charts? I think we leaned towards simply using the regular palette for everything on the original PR. |
@flash1293 yes it appears so. the WCAG constraint Caroline linked unfortunately doesn't distinguish between small/thin shapes and shapes with larger areas, so I agree with Caroline's conclusion that we can't simply use the We could have more complicated logic, eg.
and I think, over time, we should, as well as we should improve on other aspects of accessibility, but I'm not in a decision making position on this. Same thing with the color order of the palette: Caroline points out the legit concern of backwards compatibility with formerly created dashboards. Which is solvable by a legacy flag. But it still represents work and added complexity. So my concerns and the lack of solution for them remain, but I've the info to say that it's not a low hanging fruit topic and Design put in a lot of legwork to get us to where we are. So, the question is, what to do short term vs. long term. Short term: there seems to be no Product or Design initiated project or resource allocated to improving the matter. And it's not low hanging fruit as Design has put a lot of work in color already. Longer term, we could
|
Closing it for now, as freedom for further, significant color improvements hinges on more complementary accessibility features |
tl;dr
(from Maureen Stone's In Color Perception, Size Matters)
When charts share categories, sharing the value->color assignment helps the reader:
This comment, rightly, refers to this need. Initially it seems like a blocker to possibly using lighter, less saturated colors for partitioning charts that have obligate (treemap) or preferred (pie/sunburst) color backgrounds underneath text.
The two aspects - color unity, and balanced color use - are hard to reconcile on a physical, ie. wavelength / RGB basis, but they seem reconcilable perceptually.
As color sensation heavily depends on geometry and surroundings eg. background color, there are two kinds of issues when sticking to the same exact RGB values:
So a RGB color that's OK for a line chart will be a bit too saturated and dark (assuming light background) on a treemap.
There's a variety of results in color discernibility for data visualization purposes.
Danielle Szafir suggested research by Maureen Stone, which doesn't suggest an automated way, yet describes the approaches of (briefly)
We already have precedent for color thinning, as the outer rings of partitioning charts as are in the storybook examples
Other aspects:
Action:
The text was updated successfully, but these errors were encountered: