A Claude Code plugin that beautifies matplotlib scripts for scientific paper submission.
Given an existing .py plotting script, a target conference/journal, and the figure's fraction of column width on the page, the plugin renders the chart, inspects it critically, rewrites the visual system (figsize, fonts, linewidths, markers, ticks, legend weight), and re-renders to verify the result. It always renders before editing and again after editing — no code is rewritten from equations alone.
beautify-chart— the render → inspect → rewrite → re-render → verify loop. The skill looks up the venue's official author guidelines live (column width, body font size, required font family) and derives the target visual system from the figure's final physical width on the page, not from the current code values.
Ask Claude Code something like:
Beautify
path/to/plot.pyfor NeurIPS 2026. It's one full column wide.
The skill will:
- Look up NeurIPS 2026 author guidelines (column width, body pt).
- Render the script headlessly (
MPLBACKEND=Agg) and read the PNG. - List concrete visual issues at the target page width.
- Propose a unified
plt.rcParams.update({...})block plus per-call fixes (errorbarcapsize/capthick, stale kwargs removed). - Apply the edits, re-render, and verify each listed issue is resolved.
Data, colors, colormaps, linestyles, axis limits, and the user's composition are never touched.
| Input | Example |
|---|---|
script_path |
/path/to/plot.py |
venue |
NeurIPS 2026, Nature Communications, ICML 2026 |
fraction |
0.5 (half column), 1.0 (one column), 2.0 (double columns) |
You do not need to supply column widths or body font sizes — the skill looks them up from the venue.
- Python with
matplotlibinstalled on the machine running Claude Code. - The user's script must be runnable end-to-end (data loadable from the script's working directory).
![]() |
![]() |
| Before | After |

