Paper Plot
Use this skill when the job is to turn measured data into a paper-quality figure quickly and consistently.
This companion skill is adapted from Trae1ounG/paper-plot-skills/tree/main/plot-from-data.
Interaction discipline
- Follow the shared interaction contract injected by the system prompt.
- If chart semantics, units, grouping, or the intended comparison are ambiguous, ask the user a focused follow-up question instead of guessing.
- When the first durable render is ready, send a concise progress update that says which style was chosen, what data source was used, and where the output was written.
Use when
- the user provides measured values, arrays, tables, or CSV-like data and wants a publication-quality figure
- the chart can be expressed as a bar, line, scatter, or radar plot using one of the bundled styles
write, analysis-campaign, or experiment needs a first-pass paper-facing figure from structured results
Do not use when
- the job is only final visual QA or last-mile refinement of an already rendered figure; use
figure-polish
- the figure is a disposable debug plot with no durable value
- the figure requires a custom multi-panel composition that clearly does not fit any bundled template
All bundled templates emit a dpi=300 PNG first. If a paper-facing final export needs vector output or further visual refinement, hand the result to figure-polish after the first-pass render.
Available Styles
| Style |
Type |
Script |
Best for |
bar_paired_delta |
Bar |
scripts/bar_memevolve.py |
Baseline vs. method paired comparison with explicit gain arrows |
bar_grouped_hatch |
Bar |
scripts/bar_spice.py |
Multi-method comparison or ablation with highlighted primary method |
line_confidence_band |
Line |
scripts/line_selfdistill.py |
Training or scaling curves with uncertainty bands |
line_training_curve |
Line |
scripts/line_aime.py |
Ordered curves with reference lines or breakpoint markers |
line_loss_with_inset |
Line |
scripts/line_loss_inset.py |
Curves that need a local zoomed inset |
scatter_tsne_cluster |
Scatter |
scripts/scatter_tsne.py |
Clustered embedding plots with annotations |
scatter_broken_axis |
Scatter |
scripts/scatter_break.py |
Scatter plots with broken-axis layout for outliers or large gaps |
radar_dual_series |
Radar |
scripts/radar_dora.py |
Two-method multi-dimension comparison |
Workflow
1. Confirm the chart question, units, grouping, and preferred output location.
2. Choose the closest bundled style; if two or more styles fit, ask the user or state the rationale.
3. Read `references/<style_name>.md` for the exact layout, color, and rcParams expectations.
4. Copy `scripts/<script>.py` into a quest-local figure workspace such as `paper/figures/scripts/<figure_id>.py`.
5. Replace only the clearly marked data and label section in the copied script; keep the bundled template immutable.
6. Run the copied script and inspect the rendered output.
7. If the figure is durable or paper-facing, hand the result to `figure-polish` before treating it as final.
Data Substitution Tips
Each template script keeps the editable data block near the top, usually as np.array(...) declarations or a small dictionary.
- Keep array rank and basic types stable unless you intentionally refactor the plotting logic.
- If the number of categories changes, update width calculations, color lists, tick labels, and legend labels together.
- Replace labels and legends directly in the copied script instead of post-editing the exported figure.
- Keep the source data path and generated script path next to the figure output so the figure remains reproducible.
Detailed Style Parameters
Read the corresponding file in references/ for exact rcParams, colors, font sizes, spine settings, and tick directions before generating:
- Bar:
references/bar_paired_delta.md, references/bar_grouped_hatch.md
- Line:
references/line_confidence_band.md, references/line_training_curve.md, references/line_loss_with_inset.md
- Scatter:
references/scatter_tsne_cluster.md, references/scatter_broken_axis.md
- Radar:
references/radar_dual_series.md
Relationship to other skills
- Use
paper-plot for first-pass figure generation from structured data, especially for standard bar, line, scatter, and radar figure families.
- Use
figure-polish for final render-inspect-revise work on durable milestone or paper-facing figures.
- In
write, prefer this skill before inventing a new plotting stack for standard bar, line, scatter, or radar figures.
1---2name: paper-plot3description: Use when structured numeric data, arrays, or CSV-like measurements should be turned into a publication-quality figure by adapting a bundled paper-style plotting template instead of improvising a new chart from scratch.4---56# Paper Plot78Use this skill when the job is to turn measured data into a paper-quality figure quickly and consistently.9This companion skill is adapted from `Trae1ounG/paper-plot-skills/tree/main/plot-from-data`.1011## Interaction discipline1213- Follow the shared interaction contract injected by the system prompt.14- If chart semantics, units, grouping, or the intended comparison are ambiguous, ask the user a focused follow-up question instead of guessing.15- When the first durable render is ready, send a concise progress update that says which style was chosen, what data source was used, and where the output was written.1617## Use when1819- the user provides measured values, arrays, tables, or CSV-like data and wants a publication-quality figure20- the chart can be expressed as a bar, line, scatter, or radar plot using one of the bundled styles21- `write`, `analysis-campaign`, or `experiment` needs a first-pass paper-facing figure from structured results2223## Do not use when2425- the job is only final visual QA or last-mile refinement of an already rendered figure; use `figure-polish`26- the figure is a disposable debug plot with no durable value27- the figure requires a custom multi-panel composition that clearly does not fit any bundled template2829All bundled templates emit a `dpi=300` PNG first. If a paper-facing final export needs vector output or further visual refinement, hand the result to `figure-polish` after the first-pass render.3031## Available Styles3233| Style | Type | Script | Best for |34|-------|------|--------|----------|35| `bar_paired_delta` | Bar | `scripts/bar_memevolve.py` | Baseline vs. method paired comparison with explicit gain arrows |36| `bar_grouped_hatch` | Bar | `scripts/bar_spice.py` | Multi-method comparison or ablation with highlighted primary method |37| `line_confidence_band` | Line | `scripts/line_selfdistill.py` | Training or scaling curves with uncertainty bands |38| `line_training_curve` | Line | `scripts/line_aime.py` | Ordered curves with reference lines or breakpoint markers |39| `line_loss_with_inset` | Line | `scripts/line_loss_inset.py` | Curves that need a local zoomed inset |40| `scatter_tsne_cluster` | Scatter | `scripts/scatter_tsne.py` | Clustered embedding plots with annotations |41| `scatter_broken_axis` | Scatter | `scripts/scatter_break.py` | Scatter plots with broken-axis layout for outliers or large gaps |42| `radar_dual_series` | Radar | `scripts/radar_dora.py` | Two-method multi-dimension comparison |4344## Workflow4546```471. Confirm the chart question, units, grouping, and preferred output location.482. Choose the closest bundled style; if two or more styles fit, ask the user or state the rationale.493. Read `references/<style_name>.md` for the exact layout, color, and rcParams expectations.504. Copy `scripts/<script>.py` into a quest-local figure workspace such as `paper/figures/scripts/<figure_id>.py`.515. Replace only the clearly marked data and label section in the copied script; keep the bundled template immutable.526. Run the copied script and inspect the rendered output.537. If the figure is durable or paper-facing, hand the result to `figure-polish` before treating it as final.54```5556## Data Substitution Tips5758Each template script keeps the editable data block near the top, usually as `np.array(...)` declarations or a small dictionary.5960- Keep array rank and basic types stable unless you intentionally refactor the plotting logic.61- If the number of categories changes, update width calculations, color lists, tick labels, and legend labels together.62- Replace labels and legends directly in the copied script instead of post-editing the exported figure.63- Keep the source data path and generated script path next to the figure output so the figure remains reproducible.6465## Detailed Style Parameters6667Read the corresponding file in `references/` for exact `rcParams`, colors, font sizes, spine settings, and tick directions before generating:6869- Bar: `references/bar_paired_delta.md`, `references/bar_grouped_hatch.md`70- Line: `references/line_confidence_band.md`, `references/line_training_curve.md`, `references/line_loss_with_inset.md`71- Scatter: `references/scatter_tsne_cluster.md`, `references/scatter_broken_axis.md`72- Radar: `references/radar_dual_series.md`7374## Relationship to other skills7576- Use `paper-plot` for first-pass figure generation from structured data, especially for standard bar, line, scatter, and radar figure families.77- Use `figure-polish` for final render-inspect-revise work on durable milestone or paper-facing figures.78- In `write`, prefer this skill before inventing a new plotting stack for standard bar, line, scatter, or radar figures.