"""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 : ![Légende](../schemas/svg/.svg){#fig-} """ id: str # ex. "m03-pwm-duty" ; le préfixe mXX donne le module dessiner: Callable # renvoie une figure matplotlib ou un dessin schemdraw