Choosing colours for a Sankey diagram
Colour is the second channel of information in a Sankey, after width. Spending it on variety rather than meaning is the most common way a technically correct chart becomes hard to read.
Three roles, three colours
Gains green, losses red, trunk neutral. That is enough for every financial flow, and it means a reader who has never seen your chart can still tell how the story ends. Segment colours are only worth adding when the segments themselves are the point.
Keep the trunk quiet
The revenue or total node should be the least saturated thing in the chart. It is the biggest shape by definition, so a strong colour there dominates everything and drowns the outcome you actually want noticed.
Test it in dark mode
Charts get embedded in dark dashboards, dark slide themes and dark social feeds. Mid-tone greens and reds survive both backgrounds; pale pastels vanish on white and neon tones vibrate on black.
Opacity is a design tool
Ribbons at around 45% opacity with solid nodes gives depth without mud where flows cross. Fully opaque ribbons turn every crossing into a solid block, which is where most Sankeys start looking messy.
- Green for what is kept, red for what is lost, grey for what is neither.
- Saturate the outcome nodes, mute the trunk.
- Check contrast on both white and near-black backgrounds.
- Semi-transparent ribbons, solid nodes.
If a colour in your chart cannot be explained in four words, it is decoration, and decoration in a data chart costs the reader attention they were going to spend on the numbers.
Frequently asked
How many colours should a Sankey diagram use?
Usually three. Add more only when each additional colour maps to a category the reader needs to track across the chart.
Should ribbons be transparent?
Yes, around 40 to 50% opacity. It keeps overlapping flows legible while letting the solid nodes anchor the layout.