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

VérifiéSûr

Génère des figures matplotlib pour l'analyse topologique des données (TDA) en suivant les conventions de la base de code trajectory_tda/viz. Utilise des constantes de style et des modèles de figures prédéfinis.

Spar Skills Guide Bot
Data & IAIntermédiaire
0029/07/2026
Claude Code
#topological-data-analysis#figure-generation#matplotlib#publication-ready

Recommandé pour

Notre avis

Génère du code matplotlib pour des visualisations d'analyse topologique des données (TDA), en suivant les conventions de style établies dans la base de code trajectory_tda.

Points forts

  • Garantit la cohérence avec les constantes de style prêtes pour la publication (DPI, tailles de figures, palettes de couleurs).
  • Fournit des modèles pour les figures TDA courantes (diagrammes de persistance, codes à barres, histogrammes nuls, comparaisons de paysages).
  • Impose des chemins de sortie appropriés pour les figures de production et exploratoires.
  • Évite le formatage ad hoc en utilisant des constantes prédéfinies et des fonctions de sauvegarde.

Limites

  • Fonctionne uniquement dans le contexte de la base de codes trajectory_tda (suppose une structure de modules spécifique).
  • Ensemble limité de modèles de figures ; les personnalisations peuvent encore nécessiter une modification manuelle du code.
  • Pas de support pour les tracés interactifs ou 3D.
Quand l'utiliser

Lors de la création de figures de publication ou supplémentaires pour un article de TDA dans le cadre du projet trajectory_tda.

Quand l'éviter

Lors de la génération de figures en dehors de l'écosystème trajectory_tda ou lorsque des visualisations non standard ou hautement personnalisées sont nécessaires.

Analyse de sécurité

Sûr
Score qualité90/100

The skill provides static guidelines and code patterns for generating matplotlib figures using a specific codebase. It does not instruct any execution of potentially harmful commands, network access, or file deletion. The content is purely instructional and poses no security risk.

Aucun point d'attention détecté

Exemples

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