Scientific Visualization
Design, audit, and export truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly.
Data & AnalyticsAdvanced★ 33,030⑂ 3,248AI score 9/10Last updated: Aug 9, 2026
What it does
- Enforces honest encodings: zero baselines for bars/areas, cautious handling of dual axes, log scales, area/volume scaling, and mandatory disclosure of binning, normalization, and smoothing.
- Handles uncertainty and missing data: requires naming SD/SE/CI/posterior intervals with
nand replication unit, and visually distinguishing missing, zero, censored, and excluded values. - Builds accessibility in: color plus marker, line style, hatching, or direct labels; contrast audited at rendered size against WCAG 2.2 thresholds plus grayscale separation screening.
- Exports deterministically with provenance:
figure_exportpreserves physical page size, DPI, Type 42 font embedding, TIFF LZW, refuses silent overwrite, and writes a provenance manifest. - Bundled offline CLIs: raster/vector metadata inspection (Pillow, pypdf), palette contrast audit, publisher export planning (
export_plan.py), and style previews. - Assets included: publication/Nature/presentation mplstyle files, Okabe-Ito and Paul Tol palettes, dated publisher profile JSON.
Who it's for
- Researchers and grad students preparing figures for journals, theses, or posters
- Anyone who wants to pre-empt reviewer complaints about truncated axes, ambiguous error bars, or color-vision accessibility
- Teams juggling per-journal width (mm), DPI, and file-format requirements
- Labs that need reproducible, integrity-respecting figure pipelines
Example uses
- Single-column figure: "Plot time vs. response by treatment at 89 mm width, 600 dpi PDF + PNG, with 95% bootstrap CIs" → figure built inside a style context, then exported with a provenance manifest.
- Pre-submission check: "Does figure1.tiff meet Nature's combination-figure spec?" →
image_metadata.pyreports DPI, mode, alpha, and page size;export_plan.pycompares against the dated publisher snapshot. - Palette audit: "Will this six-color palette separate for color-blind readers on white?" → WCAG contrast plus CIE L* grayscale report, then add redundant marker/line-style cues.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/scientific-visualization folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/scientific-visualization/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git /tmp/scientific-agent-skills && mkdir -p ~/.claude/skills && cp -r /tmp/scientific-agent-skills/skills/scientific-visualization ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Prerequisites: install Python 3.11+ and uv. If you plan to use Plotly static export (
write_image), also install Chrome/Chromium. - Clone the repo:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Copy the skill:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/scientific-visualization ~/.claude/skills/ - Verify: run
ls ~/.claude/skills/scientific-visualizationand confirmSKILL.md,scripts/,assets/, andreferences/are present. - Restart Claude Code, then trigger it with prompts like "make a publication-ready figure" or "audit this figure for journal compliance".
- Optional smoke test:
uv run --isolated --no-project --python 3.13 --with "matplotlib==3.11.1" python ~/.claude/skills/scientific-visualization/scripts/figure_export.py --demo outputs/export-smoke --manifest - Caveat: publisher profiles and journal notes are dated snapshots, not compliance guarantees — re-check the live journal page right before you upload.
View source on GitHub ↗License: MIT