Designing Charts for Color Blindness
About 8% of men and 0.5% of women have color vision deficiency. Accessible charts use color-blind friendly palettes, patterns, and labels to ensure everyone can interpret your data.
Common Types of Color Blindness
1. Deuteranomaly (Red-Green, most common):
- Difficulty distinguishing red and green
2. Protanomaly (Red-Green):
- Red appears darker, greener
3. Tritanomaly (Blue-Yellow, rare):
- Difficulty with blue and yellow
4. Achromatopsia (Complete, very rare):
- No color vision, only grayscale
Color-Blind Friendly Palettes
Python with Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
# Built-in color-blind safe palette
sns.set_palette("colorblind")
# Alternative: use specific colors
colorblind_colors = ['#0173B2', '#DE8F05', '#029E73', '#CC78BC',
'#CA9161', '#949494', '#ECE133', '#56B4E9']
sns.set_palette(sns.color_palette(colorblind_colors))
Avoid These Combinations
# Problematic for color blindness:
# Red + Green (most common issue)
# Blue + Purple
# Green + Brown
# Green + Blue
# Light Green + Yellow
# Safe combinations:
# Blue + Orange
# Blue + Yellow
# Purple + Green
# Red + Blue
Best Practices
1. Don't Rely on Color Alone
# Bad: Only color differentiates lines
plt.plot(x, y1, color='red')
plt.plot(x, y2, color='green')
# Good: Use line styles too
plt.plot(x, y1, color='#0173B2', linestyle='-', label='Series A')
plt.plot(x, y2, color='#DE8F05', linestyle='--', label='Series B')
2. Use Patterns and Textures
# Add patterns to bars
import matplotlib.patches as mpatches
bars = plt.bar(categories, values)
bars[0].set_hatch('///')
bars[1].set_hatch('...')
bars[2].set_hatch('xxx')
3. Add Direct Labels
# Label data points directly
for i, (cat, val) in enumerate(zip(categories, values)):
plt.text(i, val, f'{val}', ha='center', va='bottom')
Accessible Color Schemes
Viridis (Perceptually Uniform)
plt.imshow(data, cmap='viridis')
# Works for all color vision types
ColorBrewer Safe Palettes
from colorbrewer import qualitative
# Safe for color blind
safe_colors = qualitative.Set2_8
plt.bar(x, y, color=safe_colors)
Testing Your Charts
# Use simulators to test:
# 1. Coblis Color Blindness Simulator (online)
# 2. Color Oracle (free software)
# 3. Photoshop color blind preview
# Export chart, upload to simulator, check readability
Accessibility Checklist
- Use color-blind friendly palette
- Don't rely on color alone
- Add patterns/textures to bars
- Use different line styles
- Label data points directly
- Ensure sufficient contrast
- Test with color blind simulator
Pro Tip: Use blue/orange combinations instead of red/green. Add direct labels and use line styles so your charts work even in grayscale. Test with Color Oracle to see how color blind users experience your visualizations!
← Back to Visualization Tips