matplotlib -- Claude Code Skill
Publication-quality matplotlib/seaborn charts from a one-line prompt. Colorblind-accessible, despined, annotation-rich figures using DejaVu Sans, cubehelix/ColorBrewer palettes, and whitegrid styling. Opinionated.
Usage
> make a chart of collision rates by state using the matplotlib skill
The skill picks the chart type, applies opinionated templates and palettes, and saves PDF+PNG to ./figures/.
Before vs. After
Same data. Same prompt. The skill applies despined axes, cubehelix palettes, value labels, and insight annotations.
| Claude defaults | With skill |
|---|
 |  |
More comparisons
| Claude defaults | With skill |
|---|
 |  |
 |  |
Install
Clone (auto-discovered by Claude Code)
git clone https://github.com/tvhahn/matplotlib-skill.git
cd matplotlib-skill
# Claude Code auto-discovers skills/matplotlib/SKILL.md when working in this repo
Global install (available in all projects)
ln -s /path/to/matplotlib-skill/skills/matplotlib ~/.claude/skills/matplotlib
Per-session (no symlink needed)
claude --add-dir /path/to/matplotlib-skill
Plugin install
/plugin marketplace add tvhahn/matplotlib-skill
/plugin install matplotlib
9 Chart Patterns
 P1 Horizontal Bar |  P2 Vertical Bar |  P3 Time Series |
 P4 Violin + Strip |  P5 Lollipop |  P6 Decision Boundary |
 P7 Heatmap |  P8 Multi-Panel |  P9 PR/ROC |
| Pattern | When to use |
|---|
| P1 Horizontal Bar | Ranked percentages, category comparisons |
| P2 Vertical Bar | Comparisons across categories, ranked values |
| P3 Time Series | Time series with rolling average |
| P4 Violin + Strip | Distribution comparisons |
| P5 Lollipop | Min/max/avg ranges, model comparison |
| P6 Decision Boundary | Classification boundaries, probability maps |
| P7 Heatmap | Correlation matrices, spectrograms |
| P8 Multi-Panel | Multi-panel grid layouts (2x2, 3x2, 3x3) |
| P9 PR/ROC | PR/ROC classification evaluation curves |
Design Philosophy
Above all else, show the data. Annotate the insight, not just the axis. When in doubt, remove.
Full principles
- Above all else, show the data
- Every element earns its ink
- Prefer position over color, color over size
- Grey is a color. White space is a feature.
- Despine, degrid, then add back only what the reader needs
- Annotate the insight, not just the axis
- Encode meaning twice -- never rely on color alone
- Consistency across panels; variety across charts
- The reader should never do arithmetic
- When in doubt, remove
How This Skill Was Built
Built through 50 iterations of automated evaluation -- an AI refining its own visual taste. Read the story on my blog →
Datasets