Figure QA (render-then-verify)
Overview
A finished figure can look fine and still be wrong: a series plotted from the wrong column, a legend covering a data point, tick labels clipped at the axis edge, or a 150-dpi export that pixelates in print. This skill is a render-then-verify QA pass — it re-renders the figure and checks it against a concrete, measurable checklist before submission. It complements the plotting skills (which make figures); it does not create plots.
When to Use This Skill
Use this skill when the user wants to:
- Proof a finished figure for correctness and print-readiness before submission.
- Confirm the plot faithfully represents its data (every row/series accounted for).
- Catch overlapping or clipped labels, legends, and markers.
- Verify resolution / export settings (e.g. 300 dpi, vector where required).
Does NOT Trigger
| Scenario | Use instead |
|---|---|
| Create/plot the figure in the first place | alterlab-matplotlib / alterlab-seaborn / alterlab-plotly |
| Lay out a multi-panel publication figure | alterlab-scientific-viz |
| Draw a schematic / diagram | alterlab-scientific-schematics |
| Build an infographic | alterlab-infographics |
Core Capabilities
1. Data-fidelity check
Verify the rendered marks against every row of the source data: series count, point count per series, min/max/range on each axis, and that categorical labels match the data's categories. Flag any series plotted from the wrong column or a silently dropped subset.
2. Label floor-and-ceiling legibility
Check that tick labels, axis titles, and annotations are within legibility bounds — a font floor (nothing below the journal's minimum pt at final size) and a ceiling (titles not so large they crowd the panel) — and that nothing is clipped at the axis boundary.
3. Bounding-box collision detection
Compute the bounding boxes of text, legend, and markers and detect overlaps/collisions (legend over data, colliding labels, out-of-axes text). Report each collision with its location so it can be nudged.
4. Resolution and export QA
Confirm the export meets the target: ≥300 dpi for raster, vector format where the venue requires it, correct figure dimensions/column width, and embedded fonts. Fail the check if the raster resolution is below the floor.
5. Report
Emit a pass/fail checklist per criterion with the specific offending element(s), so the fix is
actionable. See references/figure_qa_checklist.md for the full rubric and Matplotlib bbox
recipes.
Resources
references/figure_qa_checklist.md— the full QA rubric, Matplotlib renderer/bbox recipes for collision detection, dpi/vector export checks, and journal legibility floors. Loaded on demand.
Part of the AlterLab Academic Skills suite.