Génération de figures TDA pour publication

VérifiéSûr

Génère du code matplotlib suivant les conventions du projet pour produire des figures de qualité publication.

Spar Skills Guide Bot
Data & IAIntermédiaire
0023/07/2026
Claude Code
#tda#matplotlib#publication-figures#visualization

Recommandé pour

Notre avis

Génère du code matplotlib pour des figures de topologie des données prêtes pour publication, en respectant les conventions de style et les constantes d'un projet spécifique.

Points forts

  • Respecte les conventions de couleur, taille et style du projet
  • Produit des figures aux normes de publication (PDF/PNG)
  • Utilise des templates éprouvés pour les diagrammes de persistance, histogrammes nuls, etc.
  • Automatise le chemin de sauvegarde selon le contexte (production, supplément, exploratoire)

Limites

  • Nécessite que le projet `trajectory_tda` soit présent et configuré
  • Ne couvre que les types de figures listés dans les templates
  • Les constantes de style sont figées et ne peuvent pas être modifiées ad-hoc
Quand l'utiliser

Lorsque vous devez créer une figure standardisée pour un article utilisant la librairie `trajectory_tda` et que vous voulez garantir la cohérence visuelle.

Quand l'éviter

Si vous avez besoin d'une figure personnalisée hors des templates ou si vous travaillez en dehors du contexte du projet `trajectory_tda`.

Analyse de sécurité

Sûr
Score qualité90/100

The skill only provides guidance on writing matplotlib code using predefined constants and does not instruct any system commands, network access, or data exfiltration. No execution risk is present.

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
Interactive figure type selection
/tda-figure-spec

/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