Skip to content
Back to skills

Scientific Figure Making

ASecurity

Publication-ready matplotlib figures for academic papers, slides, and reports — bars, trends, scatter, heatmaps, multi-panel layouts — with a house minimalist style and print/vector export conventions. Use when the user is finalizing or creating such figures in matplotlib. Do not use for interactive dashboards (Plotly/Altair/Bookeh), exploratory-only plots, dominant 3D/GIS, or Illustrator/Figma-first infographic workflows.

  • 2 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added October 15, 2026
designpythongitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 15, 2026

npx -y skills add raktim-mondol/hermes-plugin-researchcraft --skill scientific-figure-making --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scientific Figure Making?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scientific Figure Making
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/raktim-mondol-scientific-figure-making/badge)](https://www.skillsdirectory.com/skills/raktim-mondol-scientific-figure-making)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scientific-figure-making
description: Publication-ready matplotlib figures for academic papers, slides, and reports — bars, trends, scatter, heatmaps, multi-panel layouts — with a house minimalist style and print/vector export conventions. Use when the user is finalizing or creating such figures in matplotlib. Do not use for interactive dashboards (Plotly/Altair/Bookeh), exploratory-only plots, dominant 3D/GIS, or Illustrator/Figma-first infographic workflows.
license: Adapted from ChenLiu-1996/figures4papers (public repository; cite relevant papers when reusing figure patterns)
metadata:
  version: "1.0"
  skill-author: ResearchCraft
  source: https://github.com/ChenLiu-1996/figures4papers
---

# Scientific Figure Making

Create publication-quality matplotlib figures following a consistent, minimalist house style proven across papers at Nature Machine Intelligence, ICML, NeurIPS, ECCV, etc.

Open `references/` only as needed; do not preload every file. Start from the table below, then follow links inside the document you opened instead of loading the full reference set up front.

## When to load this skill

- Matplotlib figures for **papers, slides, or reports** that must match a publication look (fonts, palette, spines, legends, export).
- Requests involving **grouped bars, trend lines, heatmaps, multi-panel grids**, or **PDF/SVG/high-DPI** output in a scientific-figure context.

## When not to load

- **Plotly, Altair, Bokeh**, or other interactive / web-first plotting.
- **EDA-only** plots where seaborn or pandas is enough until there is a publication target.
- Primary workflow is **3D, GIS**, or **non-matplotlib** tooling.
- **Illustrator / Figma-first** layout or infographic (not matplotlib data plots).

## Quick start

```python
import matplotlib
matplotlib.use("Agg")  # headless
import matplotlib.pyplot as plt
import numpy as np

# Apply publication style
rc = {
    "font.family": ["Arial", "Helvetica", "DejaVu Sans", "sans-serif"],
    "font.size": 16,
    "axes.spines.right": False,
    "axes.spines.top": False,
    "axes.linewidth": 2.5,
    "legend.frameon": False,
    "svg.fonttype": "none",
}
plt.rcParams.update(rc)

# Semantic palette
PALETTE = {
    "blue_main": "#0F4D92", "blue_secondary": "#3775BA",
    "green_1": "#DDF3DE", "green_2": "#AADCA9", "green_3": "#8BCF8B",
    "red_1": "#F6CFCB", "red_2": "#E9A6A1", "red_strong": "#B64342",
    "neutral": "#CFCECE", "highlight": "#FFD700",
    "teal": "#42949E", "violet": "#9A4D8E",
}

fig, ax = plt.subplots(figsize=(3.5, 2.5))  # single-column width
x = np.linspace(0, 10, 100)
ax.plot(x, np.sin(x), color=PALETTE["blue_main"], label="sin")
ax.plot(x, np.cos(x), color=PALETTE["red_strong"], label="cos")
ax.set_xlabel("Time (s)")
ax.set_ylabel("Amplitude (mV)")
ax.legend(frameon=False)
fig.tight_layout(pad=2)
fig.savefig("figure.pdf", dpi=300)
fig.savefig("figure.png", dpi=300)
```

## Core principles

1. **Minimalist spines** — top/right off, frameless legend.
2. **Semantic color** — blue = proposed/key, green = improvement, red = baseline/contrast, neutral = reference.
3. **Typography** — Helvetica/Arial-like sans, larger sizing for bars (font.size 24, linewidth 3).
4. **Export** — PDF/SVG vector preferred; PNG at dpi=300 (600 for dense panels).
5. **Layout** — `tight_layout(pad=2)` default; ultra-wide `(45, 12)` for multi-metric comparisons.

## Related files

| File | Open when |
| --- | --- |
| `references/tutorials.md` | End-to-end walkthroughs (bar, trends, heatmap) |
| `references/api.md` | Function signatures, `PALETTE`, validation rules |
| `references/common-patterns.md` | Layout patterns, legend panel, print-safe bars |
| `references/design-theory.md` | Typography, export policy, palette rationale |

## Attribution

This skill adapts conventions from [ChenLiu-1996/figures4papers](https://github.com/ChenLiu-1996/figures4papers) (4.7k stars, public repository). If the generated figures draw heavily from specific `figure_*` scripts, cite the associated papers listed in the README.

Files in this skill

  • SKILL.md4 KB
  • references/api.md1.8 KB
  • references/common-patterns.md1.1 KB
  • references/design-theory.md1.9 KB
  • references/tutorials.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.