SPB Git
2.0 KB · 30 lines python
1#!/usr/bin/env python32"""Figure ch04 — taux effectif des droits sur les mutations immobilières (droit / base d'imposition) selon la base, barèmes 2026 :3barème légal provincial (LDMI art. 2), Montréal, Gatineau (dès le 25 février 2026), Ville de Québec. Calcul de l'auteur (ch04_marches.droits_mutation)4à partir des tranches publiées (sources : LégisQuébec, montreal.ca, gatineau.ca, ville.quebec.qc.ca, consultées le 2026-10-31).5Sortie : assets/figures/ch04/ch04-fig-mutations.pdf"""6import sys, pathlib7ROOT = pathlib.Path(__file__).resolve().parents[3]8sys.path.insert(0, str(ROOT / "analysis/python")); sys.path.insert(0, str(ROOT / "analysis/python/cases"))9import numpy as np, matplotlib.pyplot as plt10from matplotlib.ticker import FuncFormatter11from traite.style import setup, palette, savefig, LARGEUR12import ch04_marches as cas1314def main():15    setup()16    prix = np.linspace(100000, 3500000, 681)17    fig, ax = plt.subplots(figsize=(LARGEUR, 3.1))18    for i, (nom, bar) in enumerate(cas.BAREMES_2026.items()):19        te = np.array([cas.droits_mutation(p, bar) / p for p in prix]) * 10020        ax.plot(prix / 1000, te, color=palette.cat[i], lw=1.6 if i else 1.2, ls="--" if i == 0 else "-", label=nom)21    for p, lab, y, ha, dx in [(500000, "500 000 $ : médiane unifamiliale,\nprovince, T3 2026", 0.1, "right", -25), (860500, "860 500 $ : médiane plex,\nRMR Montréal, T3 2026", 0.5, "left", 25)]:22        ax.axvline(p / 1000, color=palette.ink2, lw=0.6, ls=":"); ax.text(p / 1000 + dx, y, lab, fontsize=6.8, color=palette.ink2, ha=ha)23    ax.set_xlabel("Base d'imposition (milliers de dollars)"); ax.set_ylabel("Taux effectif (% de la base)")24    ax.xaxis.set_major_formatter(FuncFormatter(lambda v, p: f"{v:,.0f}".replace(",", " "))); ax.yaxis.set_major_formatter(FuncFormatter(lambda v, p: f"{v:.1f}".replace(".", ",")))25    ax.set_ylim(0, 3.2); ax.legend(loc="upper left", fontsize=7.5)26    out = savefig(fig, "ch04/ch04-fig-mutations.pdf"); print("OK", out)2728if __name__ == "__main__":29    main()30
Files · 774056809e670c3d870d087d88dfeb8a0dd87f8e
Menu

Theme