Les supports .odt restent récupérables via le tag avant-quarto. Les figures ne déclarent plus que leur identifiant et leur fonction de dessin (légende et emplacement dans le .qmd). Génération SVG reproductible (sans date, identifiants stables) pour des diffs git propres. README : mode d'emploi Quarto et schémas. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
"""Charte graphique commune à tous les schémas de la formation."""
|
|
from dataclasses import dataclass
|
|
from typing import Callable
|
|
|
|
import matplotlib
|
|
|
|
matplotlib.use("Agg")
|
|
import matplotlib.pyplot as plt # noqa: E402
|
|
|
|
# Palette
|
|
BLEU = "#1f5fa8" # signal principal
|
|
ORANGE = "#e07a1f" # valeur moyenne, mise en évidence
|
|
VERT = "#2e8b57"
|
|
ROUGE = "#c0392b"
|
|
GRIS = "#6b7280"
|
|
GRIS_CLAIR = "#e5e7eb"
|
|
ENCRE = "#1f2937" # texte
|
|
|
|
CM = 1 / 2.54 # conversion cm -> pouces pour figsize
|
|
|
|
plt.rcParams.update({
|
|
"font.family": "DejaVu Sans",
|
|
"font.size": 10,
|
|
"axes.edgecolor": GRIS,
|
|
"axes.labelcolor": ENCRE,
|
|
"axes.titlesize": 11,
|
|
"axes.titleweight": "bold",
|
|
"axes.titlecolor": ENCRE,
|
|
"axes.spines.top": False,
|
|
"axes.spines.right": False,
|
|
"axes.grid": True,
|
|
"grid.color": GRIS_CLAIR,
|
|
"grid.linewidth": 0.8,
|
|
"xtick.color": GRIS,
|
|
"ytick.color": GRIS,
|
|
"lines.linewidth": 2,
|
|
"svg.fonttype": "path", # texte vectorisé : rendu identique partout
|
|
"svg.hashsalt": "formation-esp32", # identifiants SVG stables d'une génération à l'autre
|
|
"savefig.bbox": "tight",
|
|
"savefig.pad_inches": 0.1,
|
|
"savefig.facecolor": "white",
|
|
})
|
|
|
|
|
|
@dataclass
|
|
class Figure:
|
|
"""Déclaration d'une figure à générer.
|
|
|
|
La légende et l'emplacement sont dans le .qmd :
|
|
{#fig-<id>}
|
|
"""
|
|
id: str # ex. "m03-pwm-duty" ; le préfixe mXX donne le module
|
|
dessiner: Callable # renvoie une figure matplotlib ou un dessin schemdraw
|