SPB Git
1.7 KB · 27 lines python
1#!/usr/bin/env python32"""Figure ch07 — sensibilité de la cotisation de seuil A* à l'inflation des coûts et au rendement du fonds (DONNÉES SYNTHÉTIQUES).3Sortie : assets/figures/ch07/ch07-fig-sensibilite-cotisation.pdf"""4import sys, pathlib5ROOT = pathlib.Path(__file__).resolve().parents[3]6sys.path.insert(0, str(ROOT / "analysis/python")); sys.path.insert(0, str(ROOT / "analysis/python/cases"))7import matplotlib.pyplot as plt8from traite.style import setup, palette, savefig, LARGEUR, fmt_dollars9import ch07_servitudes_copro as cas1011def main():12    setup()13    s = cas.sensibilite_cotisation(); regle = 0.005 * cas.VALEUR_RECONSTRUCTION14    fig, ax = plt.subplots(figsize=(LARGEUR, 3.4))15    for i, (r, row) in enumerate(s["grille"].items()):16        ax.plot([p * 100 for p in s["inflations"]], row, marker="o", color=palette.cat[i], label=f"rendement du fonds r = {r*100:.0f} %")17    ax.axhline(regle, color=palette.ink2, lw=0.9, ls=":", label="règle du 0,5 % de la valeur de reconstruction (21 000 $)")18    ax.axhline(cas.COTISATION_ACTUELLE, color=palette.cat[3], lw=0.9, ls=":", label="cotisation actuelle (12 000 $)")19    ax.set_xticks([p * 100 for p in s["inflations"]]); ax.set_xticklabels([f"{p*100:.1f}".replace(".", ",") for p in s["inflations"]])20    ax.set_xlabel("Hausse annuelle des coûts de construction π (%)"); ax.set_ylabel("Cotisation de seuil A* (an 1)")21    ax.yaxis.set_major_formatter(plt.FuncFormatter(fmt_dollars)); ax.set_ylim(10000, 26000)22    ax.legend(loc="upper center", bbox_to_anchor=(0.45, -0.2), ncol=2, fontsize=7.5)23    out = savefig(fig, "ch07/ch07-fig-sensibilite-cotisation.pdf"); print("OK", out)2425if __name__ == "__main__":26    main()27
Files · a58cc978dd49eee20fac414bfb0e69af32f1a29e
Menu

Theme