
Scientific Visualization
Apply colorblind-safe palettes and colormap guidance when your agent generates matplotlib or publication-quality scientific plots.
Overview
Scientific-visualization is an agent skill for the Build phase that supplies colorblind-friendly matplotlib palettes and colormap guidance for publication-quality figures.
Install
npx skills add https://github.com/davila7/claude-code-templates --skill scientific-visualizationWhat is this skill?
- Bundled Okabe-Ito, Wong, and Paul Tol (bright, muted, light, high-contrast) palette constants
- apply_palette helper for matplotlib with sequential, diverging, and qualitative colormap recommendations
- Accessibility-first defaults aligned with colorblind-friendly scientific publication norms
- Python module pattern: import palettes and colormap names directly into plotting scripts
- 8-color Okabe-Ito palette
- 7-color Tol bright palette
- 9-color Tol muted palette
Adoption & trust: 1.1k installs on skills.sh; 27.8k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need scientific plots that stay readable in print and for colorblind readers, but your agent keeps picking default or rainbow colors.
Who is it for?
Solo builders generating matplotlib figures for papers, internal reports, or analytics notebooks who want accessibility baked in from the first draft.
Skip if: Teams that only need marketing brand colors, non-Python chart stacks, or automated chart QA without writing plot code.
When should I use this skill?
Agent is writing or refactoring matplotlib/seaborn plots for scientific, analytics, or report deliverables.
What do I get? / Deliverables
Your plotting code imports vetted palettes and applies consistent, accessible colormaps before figures are saved or embedded in docs.
- Updated plot code using named palettes
- Consistent colormap choices for categorical and continuous series
Recommended Skills
Journey fit
Charts and figures are produced while building dashboards, notebooks, and report assets—not as a one-time launch task. Visualization code sits alongside UI and presentation layers even when the underlying work is scientific or analytics-focused.
How it compares
Use instead of ad-hoc color picks in chat when you need citation-backed, colorblind-safe scientific palettes—not a generic design system skill.
Common Questions / FAQ
Who is scientific-visualization for?
Indie builders, data-minded founders, and agents drafting Python/matplotlib figures who care about accessibility and journal-style clarity.
When should I use scientific-visualization?
During Build when creating notebook or dashboard charts, before Ship when figures go into papers or slides, and whenever you regenerate EDA plots for stakeholders.
Is scientific-visualization safe to install?
It is a palette and plotting helper without network calls; review the Security Audits panel on this page before installing any skill from the catalog.
SKILL.md
READMESKILL.md - Scientific Visualization
""" Colorblind-Friendly Color Palettes for Scientific Visualization This module provides carefully curated color palettes optimized for scientific publications and accessibility. Usage: from color_palettes import OKABE_ITO, apply_palette import matplotlib.pyplot as plt apply_palette('okabe_ito') plt.plot([1, 2, 3], [1, 4, 9]) """ # Okabe-Ito Palette (2008) # The most widely recommended colorblind-friendly palette OKABE_ITO = { 'orange': '#E69F00', 'sky_blue': '#56B4E9', 'bluish_green': '#009E73', 'yellow': '#F0E442', 'blue': '#0072B2', 'vermillion': '#D55E00', 'reddish_purple': '#CC79A7', 'black': '#000000' } OKABE_ITO_LIST = ['#E69F00', '#56B4E9', '#009E73', '#F0E442', '#0072B2', '#D55E00', '#CC79A7', '#000000'] # Wong Palette (Nature Methods) WONG = ['#000000', '#E69F00', '#56B4E9', '#009E73', '#F0E442', '#0072B2', '#D55E00', '#CC79A7'] # Paul Tol Palettes (https://personal.sron.nl/~pault/) TOL_BRIGHT = ['#4477AA', '#EE6677', '#228833', '#CCBB44', '#66CCEE', '#AA3377', '#BBBBBB'] TOL_MUTED = ['#332288', '#88CCEE', '#44AA99', '#117733', '#999933', '#DDCC77', '#CC6677', '#882255', '#AA4499'] TOL_LIGHT = ['#77AADD', '#EE8866', '#EEDD88', '#FFAABB', '#99DDFF', '#44BB99', '#BBCC33', '#AAAA00', '#DDDDDD'] TOL_HIGH_CONTRAST = ['#004488', '#DDAA33', '#BB5566'] # Sequential colormaps (for continuous data) SEQUENTIAL_COLORMAPS = [ 'viridis', # Default, perceptually uniform 'plasma', # Perceptually uniform 'inferno', # Perceptually uniform 'magma', # Perceptually uniform 'cividis', # Optimized for colorblind viewers 'YlOrRd', # Yellow-Orange-Red 'YlGnBu', # Yellow-Green-Blue 'Blues', # Single hue 'Greens', # Single hue 'Purples', # Single hue ] # Diverging colormaps (for data with meaningful center) DIVERGING_COLORMAPS_SAFE = [ 'RdYlBu', # Red-Yellow-Blue (reversed is common) 'RdBu', # Red-Blue 'PuOr', # Purple-Orange (excellent for colorblind) 'BrBG', # Brown-Blue-Green (good for colorblind) 'PRGn', # Purple-Green (use with caution) 'PiYG', # Pink-Yellow-Green (use with caution) ] # Diverging colormaps to AVOID (red-green combinations) DIVERGING_COLORMAPS_AVOID = [ 'RdGn', # Red-Green (problematic!) 'RdYlGn', # Red-Yellow-Green (problematic!) ] # Fluorophore colors (traditional - use with caution) FLUOROPHORES_TRADITIONAL = { 'DAPI': '#0000FF', # Blue 'GFP': '#00FF00', # Green (problematic for colorblind) 'RFP': '#FF0000', # Red 'Cy5': '#FF00FF', # Magenta 'YFP': '#FFFF00', # Yellow } # Fluorophore colors (colorblind-friendly alternatives) FLUOROPHORES_ACCESSIBLE = { 'Channel1': '#0072B2', # Blue 'Channel2': '#E69F00', # Orange (instead of green) 'Channel3': '#D55E00', # Vermillion (instead of red) 'Channel4': '#CC79A7', # Magenta 'Channel5': '#F0E442', # Yellow } # Genomics/Bioinformatics DNA_BASES = { 'A': '#00CC00', # Green 'C': '#0000CC', # Blue 'G': '#FFB300', # Orange 'T': '#CC0000', # Red } DNA_BASES_ACCESSIBLE = { 'A': '#009E73', # Bluish Green 'C': '#0072B2', # Blue 'G': '#E69F00', # Orange 'T': '#D55E00', # Vermillion } def apply_palette(palette_name='okabe_ito'): """ Apply a color palette to matplotlib's default color cycle. Parameters ---------- palette_name : str Name of the palette to apply. Options: 'okabe_ito', 'wong', 'tol_bright', 'tol_muted', 'tol_light', 'tol_high_contrast' Returns ------- list List of colors in the palette Examples -------- >>> apply_palette('okabe_ito') >>> plt.plot([1, 2, 3], [1, 4, 9]) # Uses Okabe-Ito colors """ try: import matplotlib.pyplot as plt except ImportError: print("matplotlib not installed") return