Colour-blind-safe scientific colour palettes
Pick a published palette (Okabe–Ito, Paul Tol, viridis, cividis, ColorBrewer and journal-style sets), see it on a chart as people with protanopia, deuteranopia or tritanopia would, and copy the colours as HEX codes or ready-to-paste Python (matplotlib), R (ggplot2), CSS or JSON.
Loading Scientific colour palettes…
What it does
How to use the scientific colour palettes
- Choose the kind of dataCategories need a qualitative palette; ordered values need a sequential one; values around a midpoint need a diverging one.
- Check itEach palette is shown on a sample chart under normal vision, protanopia, deuteranopia, tritanopia and greyscale, with the smallest colour difference measured.
- Copy the codesCopy the HEX list or code for matplotlib, ggplot2, CSS or JSON.
How it works
Each palette is checked by simulating colour-vision deficiency with the Machado, Oliveira and Fernandes (2009) model in linear RGB and measuring colour differences in CIELAB (ΔE*ab). For categorical palettes the smallest difference between any two colours counts; for sequential and diverging palettes, the difference between neighbouring steps. A smallest difference of about 10 or more under red–green colour blindness is labelled colour-blind friendly.
Frequently asked questions
What is the best colour-blind-safe palette for scientific figures?
For categories, Okabe–Ito (8 colours) and Paul Tol’s bright or muted sets are the most widely recommended. For continuous data, viridis and cividis are perceptually uniform and readable with colour blindness and in greyscale.
Why avoid red and green together?
About 8 % of men and 0.5 % of women of northern European descent have red–green colour-vision deficiency, which makes red and green hard to tell apart. Use blue/orange, add labels, or vary lightness.
Should I use rainbow (jet) colour maps?
No. Rainbow maps are not perceptually uniform, create false boundaries and fail for colour-blind readers. Viridis, cividis or magma are better choices.
How do I use these colours in Python or R?
Choose Python or R in the “Use it” box and copy the code: it sets the matplotlib colour cycle or gives a vector for ggplot2’s scale_colour_manual.
Are the journal-style palettes official?
No. They come from the ggsci R package, which offers palettes inspired by journal styles; journals do not require them.
Related free tools
Make the whole figure in LabCanvas
Vector figure editor, slides, 3D models, protein structures and Prism-style graphs, in your browser.
Get started