chartinglisted
Install: claude install-skill oaustegard/claude-skills
# Charting: Python Static Visualizations
Select the optimal Python charting library and produce clean, publication-quality output.
## Library Selection Framework
Choose the library based on what the visualization represents, not habit.
### Seaborn — DEFAULT for statistical/analytical charts
Seaborn wraps matplotlib with better defaults, tighter pandas integration, and fewer lines of code. Reach for seaborn first when the data lives in a DataFrame and the goal is analytical.
**Use for:** distributions (histograms, KDEs, violin plots, ECDFs), categorical comparisons (box plots, swarm plots, strip plots, bar plots), correlation (heatmaps, pair plots, regression plots), grouped/faceted views (`FacetGrid`, `catplot`, `relplot`).
**Why:** Automatic axis labeling from column names, coherent color palettes, built-in aggregation with confidence intervals, and `hue`/`col`/`row` faceting with minimal code.
**Practical rule:** If the code would call `plt.bar()`, `plt.hist()`, `plt.scatter()`, or build a heatmap with `plt.imshow()` — use the seaborn equivalent instead. It will look better with less effort.
### Matplotlib — fine-grained control and non-standard layouts
Drop to raw matplotlib only when seaborn doesn't support the chart type or when pixel-level layout control is required.
**Use for:** custom multi-panel figures mixing chart types, unusual annotations (arrows, shaded regions, custom legends), non-standard axes (polar, broken axes, insets), animations, image overlay