| name | scipalette |
| description | Publication-ready scientific color palettes for figures and data visualization. Use whenever writing or editing plotting/visualization code (matplotlib, seaborn, plotly, ggplot2, D3, Vega, etc.) or choosing colors for charts, heatmaps, UMAP/embeddings, scatter/bar/line/box plots, volcano plots, or any categorical/sequential/diverging color need. Provides 800+ curated, colorblind-aware palettes queryable by category, color count, colorblind-safety, plot type, or nearest color, and prints paste-ready hex or matplotlib/ggplot2 code. Prefer this over inventing hex codes or defaulting to rainbow/jet. |
SciPalette
Query a bundled catalog of 800+ scientific color palettes and get paste-ready colors or plotting code. Everything runs locally through one standard-library Python script — no installation or network needed.
When to use
Reach for this skill any time you are about to pick colors in code: a categorical palette for N groups, a sequential ramp for a heatmap or continuous variable, a diverging ramp for signed values (log-fold-change, correlation, z-score), or matching an existing brand/figure color. Favor colorblind-safe palettes and match the palette category to the data.
How to run
Run the bundled script with python3. Paths below are relative to this skill's directory (the folder containing this SKILL.md); use the absolute path to scripts/palette.py if running from elsewhere.
python3 scripts/palette.py <command> [options]
Commands
recommend — best starting point. Suggest palettes for a plot + constraints.
python3 scripts/palette.py recommend --plot umap --n 12 --colorblind-safe
python3 scripts/palette.py recommend --category diverging --plot heatmap
get — a specific palette's colors as hex or code (--format hex|python|r|css|json).
python3 scripts/palette.py get "Okabe-Ito" --format python
python3 scripts/palette.py get "Viridis Heatmap" --format python
python3 scripts/palette.py get "Nature NPG Classic" --format r
list — filter/browse (--category, --plot, --colorblind-safe, --min-colors, --max-colors, --source, --search, --format table|names|json).
python3 scripts/palette.py list --category categorical --colorblind-safe --min-colors 8
python3 scripts/palette.py list --search "nature" --format names
search-color — find palettes containing a color near a target hex (e.g. match a brand color).
python3 scripts/palette.py search-color "#4E79A7"
resample — sample a sequential/diverging ramp to exactly N colors (perceptual OKLab interpolation).
python3 scripts/palette.py resample "Viridis Heatmap" 7 --format python
Guidance
- Categorical (distinct groups): use
--category categorical; pick a palette with at least as many colors as groups. Okabe-Ito, Nature NPG Classic, Tableau Scientific 10 are strong defaults.
- Sequential (ordered/continuous):
--category sequential; use get --format python to build a LinearSegmentedColormap, or resample for a fixed number of bins.
- Diverging (signed, centered at zero):
--category diverging for log-fold-change, correlation, z-scores.
- Add
--colorblind-safe for publication figures. Every palette also reports a colorblindScore in --format json.
- Output is paste-ready:
--format python for matplotlib, --format r for ggplot2, --format css for web, --format hex for a plain list.
Full library and per-palette detail: https://scipalette.fantasticjoe.com/