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

VérifiéSûr

Génère du code matplotlib pour des figures TDA suivant les conventions trajectory_tda/viz. Prend en charge diagrammes de persistance, codes-barres, histogrammes nuls et comparaisons de paysages avec un style publication.

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

Recommandé pour

Notre avis

Génère des figures de qualité publication pour l'analyse topologique des données en utilisant des constantes de style et des modèles de figures prédéfinis de la bibliothèque trajectory_tda.

Points forts

  • Impose une cohérence stylistique avec PUBLICATION_RC et des tailles de figures prédéfinies.
  • Fournit des modèles pour les graphiques TDA courants (diagramme de persistance, code-barres, histogramme nul, comparaison de paysages).
  • Automatise l'enregistrement aux formats PDF et PNG.
  • Garantit l'utilisation correcte des couleurs (STATE_COLORS, etc.).

Limites

  • Fonctionne uniquement dans le contexte de la base de code trajectory_tda ; nécessite des imports et constantes spécifiques.
  • Limité aux modèles de figures fournis ; les personnalisations génériques de matplotlib peuvent être écrasées.
  • Les dimensions et la disposition des figures sont fixées à des constantes spécifiques, réduisant la flexibilité pour des mises en page personnalisées.
Quand l'utiliser

Lors de la création de figures de qualité publication pour des articles d'analyse topologique des données qui respectent les conventions de visualisation de trajectory_tda.

Quand l'éviter

Lorsque vous avez besoin de figures matplotlib entièrement personnalisées en dehors des modèles fournis ou lorsque vous travaillez en dehors du projet trajectory_tda.

Analyse de sécurité

Sûr
Score qualité92/100

No execution of arbitrary code, network calls, or shell commands. The skill only provides guidelines for generating matplotlib figures; it contains no destructive instructions and relies on internal codebase constants.

Aucun point d'attention détecté

Exemples

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