Skip to content
Agentmart
Submit a tool

scientific-visualization

Creates and audits truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly.

Skill by K-Dense-AI

IndexedMIT★ 54,411
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/k-dense-ai-scientific-visualization

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Creates and audits truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly. Use it for figure design, multi-panel layouts, uncertainty and missing-data displays, color/contrast review, image metadata validation, and journal export planning.

Use cases: design, data, research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/scientific-visualization

Tools it pre-approves 6

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read
  • Write
  • Edit
  • Bash
  • Glob
  • Grep

What's inside

Skill name
scientific-visualization
Description
Creates and audits truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly. Use it for figure design, multi-panel layouts, uncertainty and missing-data displays, color/contrast review, image metadata validation, and journal export planning.
License
MIT
Compatibility
Requires Python 3.11+ and uv for pinned examples. Bundled CLIs are network-free and load Matplotlib, Pillow, or pypdf only when needed. Plotly static export with Kaleido v1 requires a compatible Chrome/Chromium installation.
Allowed tools
Read, Write, Edit, Bash, Glob, Grep
Metadata
version: 1.4 · skill-author: K-Dense Inc. · last-reviewed: 2026-10-01
Instructions
297 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves any shell command

Files (18)

  • SKILL.md
  • color_palettes.py · assets/
  • nature.mplstyle · assets/
  • presentation.mplstyle · assets/
  • publication.mplstyle · assets/
  • publisher_profiles.json · assets/
  • color_palettes.md · references/
  • journal_requirements.md · references/
  • matplotlib_examples.md · references/
  • publication_guidelines.md · references/
  • sources.md · references/
  • _common.py · scripts/
  • export_plan.py · scripts/
  • figure_export.py · scripts/
  • image_metadata.py · scripts/
  • palette_audit.py · scripts/
  • style_presets.py · scripts/
  • style_preview.py · scripts/

SKILL.md (first lines)

# Scientific Visualization

Build figures that preserve scientific meaning before optimizing appearance. Separate universal principles from dated publisher rules, preserve raw data and transformations, use color redundantly, and inspect delivered files rather than trusting plotting defaults.

## Non-negotiable guardrails

- Never alter, hide, invent, or selectively enhance data to improve a figure.
- Preserve raw tables/images, exclusions, missing-value codes, analysis code, normalization, binning, image adjustments, and random seeds.
- Do not infer journal requirements. Identify the exact journal, article type, figure type, and submission phase; verify its live official guidance.
- Do not claim that a palette, DPI value, format, or automated report makes a figure accessible or journal-compliant.
- Do not silently connect missing observations, suppress inconvenient points, upsample images as if detail increased, or tune axes/dual axes to exaggerate a conclusion.
- Keep interactive and static outputs as distinct deliverables. Interactive hover is not a substitute for labels, alt text, keyboard access, an accessible data table, or a static fallback.

Read `references/publication_guidelines.md` for deceptive-encoding and integrity checks. Read `references/journal_requirements.md` only after the target and phase are known.

## Workflow

### 1. Define the evidence and destination

Record:

- audience and medium: manuscript, web, slide, poster, supplement;
- exact publisher/journal, article type, submission phase, and intended final width;
- variable semantics, units, sample/replicate structure, missing/censored values;
- estimator and uncertainty definition;
- transformations: filtering, aggregation, normalization, smoothing, bins, image processing;
- source-data paths/identifiers and output provenance.

If requirements are not known, create a provisional general figure and label all publisher choices as pending verification.

### 2. Choose an honest encoding

Prefer position on a common scale. Before coding, check:

- **Bars/areas:** normally include zero because length/area is measured from a baseline.
- **Points/lines:** nonzero limits can be valid; show context and disclose breaks.
- **Uncertainty:** name SD, SE, CI, percentile, posterior, or another interval; state `n` and the unit of replication.
- **Raw observations:** show them when feasible; do not let jitter obscure categories/values.
- **Missing data:** distinguish missing, zero, censored, and excluded; use gaps or explicit model/interpolation styling.
- **Area/volume:** scale area/volume, not radius/diameter; avoid decorative 3D.
- **Log axes:** label the base/transform and declare how zero/negative values are handled.
- **Binning/smoothing:** record edges, bandwidth/window, method, and sensitivity.
- **Normalization:** state formula/reference and keep limits consistent across compared panels.
- **Dual axes:** prefer aligned panels; if unavoidable, justify units and do not engineer apparent correlation.
- **Images:** preserve originals, disclose whole-image adjustments, show scale bars, and avoid clipped/erased background.

### 3. Design accessibility in, not after

- Use color plus marker, line style, hatching, direct label, or panel separation.
- Choose qualitative, sequential, diverging, or cyclic color according to data semantics.
- Audit foreground/background contrast at the rendered size.
- Make missing and out-of-range values explicit.
- Provide alt text, a longer description for complex figures, and underlying data for web delivery.
- Treat WCAG 2.2 as web guidance: 4.5:1 normal text, 3:1 large text, and 3:1 for graphical objects required for understanding; color cannot be the only cue. Applicability and exceptions matter.

See `references/color_palettes.md`. A grayscale screen is useful but is not a complete color-vision or accessibility test.

### 4. Implement with scoped styles

Run shell examples from this skill directory. For your own figure script, add `scripts/` and `assets/` to the import path (see the bootstrap in `references/matplotlib_examples.md`) and create the output directory. Use Matplotlib's object-oriented API and temporary style contexts:

```python
import matplotlib.pyplot as plt

from style_presets import style_context

with style_context("default", palette_name="okabe_ito_on_white"):
    fig, ax = plt.subplots(
        figsize=(89 / 25.4, 60 / 25.4),
        layout="constrained",
    )
    ax.plot(x, y, marker="o", label="Observed")
    ax.set(xlabel="Time (hours)", ylabel="Response (unit)")
    ax.legend()
```

`layout="constrained"` supports colorbars, nested GridSpec, subfigures, and `subplot_mosaic`. Do not call `tight_layout()` afterward; it disables constrained layout.

For exact physical dimensions, do not use `bbox_inches="tight"` unless the changed page size is intentional.

#### Color normalization

```python
import matplotlib as mpl

norm = mpl.colors.TwoSlopeNorm(vmin=-2, vcenter=0, vmax=5)
cmap = mpl.colormaps["RdBu_r"].with_extremes(bad="#777777")
image = ax.imshow(values, norm=norm, cmap=cmap, interpolation="nearest")
fig.colorbar(image, ax=ax, label="Change (unit)")
```

Use `LogNorm`, `CenteredNorm`, `SymLogNorm`, `BoundaryNorm`, or `TwoSlopeNorm` only when its mapping matches the scientific meaning.

#### Seaborn

Seaborn 0.13.2 uses the current `errorbar` API:

```python
sns.lineplot(
    data=frame,
    x="time",
    y="response",
    hue="treatment",
    style="treatment",
    markers=True,
    errorbar=("ci", 95),
    n_boot=5000,
    seed=20260723,
    ax=ax,
)
```

For repeated measurements, preserve the subject/sample identifier. To show individual trajectories, use Seaborn's `units` with `estimator=None`; this draws one line per sampling unit instead of an aggregate mean. For an aggregate uncertainty band, compute intervals using the actual independent sampling unit (for example, a subject-level bootstrap) and plot those intervals explicitly. A row-wise CI and a fixed random seed do not account for within-subject dependence. See the [relational tutorial](https://seaborn.pydata.org/tutorial/relational).

Seaborn drops missing rows before drawing lines, so it can bridge a missing observation. For visible gaps, use explicit NaNs/masks with Matplotlib or draw contiguous observed segments separately.

Axes-level functions fit custom Matplotlib layouts; figure-level functions create their own figures/facets. Do not customize Seaborn's internal artist lists as if they were stable API.

#### Plotly

From K-Dense-AI/scientific-agent-skills, MIT.

More from K-Dense-AI/scientific-agent-skills

Signals

Stars
54,411
Forks
4,797
Open issues
8
Last commit (this folder)
Oct 1, 2026 (28 days ago)
Last release
Oct 1, 2026 (27 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.4
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from K-Dense-AI

Cite this page

scientific-visualization skill. Agent Mart. https://agentmart.dev/skills/k-dense-ai-scientific-visualization (last updated 2026-10-24)