Générer des figures TDA prêtes à publier

VérifiéSûr

Génère du code matplotlib pour des figures TDA prêtes à publier selon les conventions trajectory_tda/viz. Utilise les constantes de style et modèles pour diagrammes de persistance, barcodes et histogrammes.

Spar Skills Guide Bot
Data & IAIntermédiaire
1005/08/2026
Claude Code
#tda#matplotlib#figure-generation#publication#visualization

Recommandé pour

Notre avis

Ce skill génère du code matplotlib prêt pour publication pour des figures d'analyse topologique de données, en respectant les conventions de style du projet trajectory_tda.

Points forts

  • Impose des constantes de style uniformes (tailles, couleurs, polices) issues du codebase.
  • Fournit des gabarits pour les diagrammes de persistance, les barcodes, les histogrammes de null et les comparaisons de paysages.
  • Automatise l'enregistrement en PDF et PNG avec une résolution adaptée.
  • Empêche les couleurs ou dimensions ad hoc en forçant l'utilisation des constantes définies.

Limites

  • Fortement lié au codebase trajectory_tda, donc inutilisable hors de ce projet.
  • Dépend de l'existence de gabarits de figures dans le module de visualisation.
  • Ne produit pas directement les figures, seulement le code à exécuter.
Quand l'utiliser

Lorsque vous devez créer une figure TDA pour un article ou un supplément dans le projet trajectory_tda.

Quand l'éviter

Pour des explorations rapides ou des visualisations hors de ce projet, où les conventions imposées seraient un frein.

Analyse de sécurité

Sûr
Score qualité92/100

The skill is a descriptive specification for generating matplotlib figures. It does not instruct any dangerous actions, command execution, or data exfiltration. It only provides coding conventions and templates, posing no execution risk.

Aucun point d'attention détecté

Exemples

Persistence diagram
/tda-figure-spec persistence-diagram P01-B
Null histogram
/tda-figure-spec null-histogram P01-A
Landscape comparison
Use /tda-figure-spec landscape-comparison P02-S1 to scaffold the landscape figure for the supplement.

/tda-figure-spec — Generate Publication-Ready TDA Figures

Scaffold matplotlib figure code following the established trajectory_tda/viz/ conventions. Uses PUBLICATION_RC, DPI, FIGSIZE_*, STATE_COLORS, and _save_figure from the codebase — never ad-hoc sizes or colours.

Usage

/tda-figure-spec [figure-type] [paper-number]

Example: /tda-figure-spec persistence-diagram P01-B Example: /tda-figure-spec null-histogram P01-A Example: /tda-figure-spec (interactive)


Style constants (always import from trajectory_tda/viz/constants.py)

from trajectory_tda.viz.constants import (
    DPI, FIGSIZE_FULL, FIGSIZE_WIDE, FIGSIZE_HALF, FIGSIZE_SQUARE,
    PUBLICATION_RC, STATE_COLORS, STATES, STATE_LABELS, REGIME_LABELS,
)
import matplotlib.pyplot as plt
plt.rcParams.update(PUBLICATION_RC)

Figure size guide

| Use case | Constant | Size | |---|---|---| | Single full-width plot | FIGSIZE_FULL | 190mm × 120mm | | Wide two-panel | FIGSIZE_WIDE | 190mm × 104mm | | Half-width single panel | FIGSIZE_HALF | 90mm × 120mm | | Square heatmap | FIGSIZE_SQUARE | 90mm × 90mm |

Save function (always use this pattern)

def _save_figure(fig, output_dir: Path, name: str) -> None:
    output_dir.mkdir(parents=True, exist_ok=True)
    fig.savefig(output_dir / f"{name}.pdf", format="pdf")
    fig.savefig(output_dir / f"{name}.png", format="png", dpi=DPI)

Colour rules

  • State space: always STATE_COLORS dict — never tab10 or default cycle
  • Observations: #2d6a2e (green); Null: steelblue; Dim 0: green; Dim 1: #1a237e
  • Regimes: plt.cm.tab10 with REGIME_LABELS order
  • Sequential/diverging: viridis, plasma, RdBu_rnever jet

Annotation standards

  • p-values: write p=0.003, not p<0.01
  • Axes: remove top and right spines; keep bottom and left
  • Legends: frameon=False
  • Subplot labels: ax.text(0.02, 0.97, "(a)", transform=ax.transAxes, ...)

Figure templates available

| Template | When to use | |---|---| | plot_persistence_diagram(diagram, dim, ax) | Scatter birth-death pairs | | plot_barcode(diagram, dim, ax) | Feature lifetimes sorted by persistence | | plot_null_histogram(observed, null_dist, p_value, dim, ax) | Permutation test result | | plot_landscape_comparison(obs, null, grid, ax) | L² landscape distance (mandatory) |


Output paths

| Context | Path | Naming | |---|---|---| | Production paper figure | papers/PXX/figures/ | fig{N}_{desc}.{pdf\|png} | | Supplement | papers/PXX/figures/ | figS{N}_{desc}.{pdf\|png} | | Working / exploratory | figures/{domain}/ | YYYYMMDD_{desc}.png |

Working figures must not be saved to papers/PXX/figures/ — that is for production only.

Skills similaires