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

VérifiéSûr

Générer du code matplotlib pour des figures TDA selon les conventions établies, avec constantes de style, tailles et fonctions de sauvegarde prédéfinies.

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

Recommandé pour

Notre avis

Génère du code matplotlib conforme aux conventions du projet trajectory_tda pour produire des figures TDA prêtes pour publication.

Points forts

  • Impose des constantes de style centralisées (tailles, couleurs, DPI) pour des figures homogènes.
  • Fournit des modèles pour diagrammes de persistance, codes-barres, histogrammes nuls et comparaisons de paysages.
  • Applique des conventions de couleurs, d'annotations et de légendes adaptées aux articles scientifiques.
  • Sauvegarde automatiquement en PDF et PNG avec les chemins de sortie appropriés.

Limites

  • Dépend étroitement du codebase trajectory_tda et de ses constantes spécifiques.
  • Ne couvre qu'un nombre limité de types de figures TDA.
  • Exige de bien distinguer figures exploratoires et figures de production dans les chemins de sortie.
Quand l'utiliser

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

Quand l'éviter

Pour des tracés exploratoires rapides hors des conventions du projet ou pour des visualisations non liées à la TDA.

Analyse de sécurité

Sûr
Score qualité92/100

The skill provides templating and style guidance for generating matplotlib figure code. It does not instruct any destructive actions, data exfiltration, or execution of arbitrary commands. There are no obfuscated payloads, no disabling of safety mechanisms, and no use of shell commands. It only references existing codebase modules for constants and plotting functions.

Aucun point d'attention détecté

Exemples

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