返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

scientific-figure-pro

使用Python/matplotlib生成具有统一figures4papers样式、适合出版的科学图表。在创建或优化学术条形图/趋势图/热力图/散点图/多面板图表,强制视觉一致性,或导出适合论文的PNG/PDF/SVG格式输出时使用。

person作者: jakexiaohubgithub

Scientific Figure Pro

Use this skill to create or revise publication figures with consistent aesthetics from the figures4papers project.

Workflow

  1. Identify the figure family (bar, trend, heatmap, scatter, multi-panel, conceptual illustration).
  2. Load helper APIs from scripts/scientific_figure_pro.py.
  3. Apply style first with apply_publication_style(...).
  4. Build the figure using make_* helpers.
  5. Export with finalize_figure(...) to keep layout and output defaults consistent.

Use The Helper Module

Load by file path when package imports are inconvenient:

import importlib.util
from pathlib import Path
import matplotlib.pyplot as plt

module_path = Path("skills/scientific-figure-pro/scripts/scientific_figure_pro.py")
spec = importlib.util.spec_from_file_location("scientific_figure_pro", module_path)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)

Core APIs

  • FigureStyle(...): Configure typography and axis linewidth.
  • apply_publication_style(style=None): Apply global rcParams.
  • create_subplots(nrows, ncols, figsize, **kwargs): Create flattened axes.
  • make_grouped_bar(...): Build grouped bars with publication defaults.
  • make_trend(...): Build trend lines with optional confidence shadow.
  • make_heatmap(...): Build heatmaps with optional labels and annotations.
  • make_scatter(...): Build clean scatter plots.
  • make_sphere_illustration(...): Build conceptual shaded sphere panels.
  • finalize_figure(fig, out_path, formats=None, dpi=300, pad=0.05): Save outputs consistently.

Style Policy

  • Use Helvetica/Arial-like sans-serif families.
  • Remove top/right spines.
  • Keep legends frameless.
  • Use semantic palette mapping:
    • blue for target/proposed method,
    • green for improvements,
    • red for contrasts/baselines,
    • neutral for support categories.
  • Use dpi=300 by default and dpi=600 for dense bar panels.

Practical Defaults

  • Dense benchmark bars: FigureStyle(font_size=24, axes_linewidth=3) and wide canvas.
  • Compact analysis charts: FigureStyle(font_size=15 or 16, axes_linewidth=2).
  • Finalize every figure through finalize_figure(...) instead of direct plt.savefig(...).

Dependencies

  • Python 3.8+
  • matplotlib
  • numpy

References

  • Read references/design_theory.md when you need style rationale and reproduction rules.