Générer des figures TDA prêtes pour publication

VérifiéSûr

Génère des figures matplotlib pour l'analyse topologique de données (TDA) en suivant les conventions du codebase. Inclut des modèles pour diagrammes de persistance, codes-barres, histogrammes nuls et comparaisons de paysages.

Spar Skills Guide Bot
Data & IAIntermédiaire
1001/08/2026
Claude Code
#topological-data-analysis#matplotlib#figure-generation#publication-figures#trajectory-analysis

Recommandé pour

Notre avis

Fournit un modèle structuré pour générer des figures d'analyse topologique de données prêtes pour publication avec matplotlib, en imposant les constantes de style, tailles de figure, couleurs, annotations et chemins de sortie spécifiques au projet.

Points forts

  • Impose un style homogène grâce à des constantes partagées (DPI, tailles de figure, couleurs des états)
  • Propose des gabarits prêts à l'emploi pour les visualisations TDA courantes (diagrammes de persistance, code-barres, histogrammes de nullité, comparaisons de paysages)
  • Distingue clairement les chemins de sortie pour les figures de production et exploratoires, évitant la pollution du dossier de l'article
  • Standardise les annotations et le schéma d'enregistrement (PDF+PNG)

Limites

  • Étroitement lié aux conventions du dépôt trajectory_tda.viz
  • Limité aux figures TDA, ce n'est pas un outil de tracé généraliste
  • Pas de support explicite des tracés interactifs ou personnalisés au-delà des gabarits listés
Quand l'utiliser

À utiliser lors de la création ou de la modification de figures TDA pour un article ou un supplément dans ce projet.

Quand l'éviter

À éviter pour des tracés exploratoires généraux hors des conventions TDA ou pour des visualisations autres que matplotlib.

Analyse de sécurité

Sûr
Score qualité85/100

The skill only provides guidelines for generating matplotlib code and imports from an existing codebase. It does not execute any system commands or perform network operations.

Aucun point d'attention détecté

Exemples

Persistence diagram for paper P01-B
/tda-figure-spec persistence-diagram P01-B
Null hypothesis histogram
/tda-figure-spec null-histogram P01-A
Interactive figure scaffold
/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