import sys
import pandas as pd
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
D = sys.argv[1] if len(sys.argv) > 1 else "."
o = pd.read_csv(f"{D}/prix_lignes_electriques_pays.csv")
e = pd.read_csv(f"{D}/electricite_pays_prix_part_fossile.csv")[["iso", "fossile_twh"]]
o = o.merge(e, on="iso").sort_values("fossile_twh", ascending=False).head(30).iloc[::-1]
fig, g = plt.subplots(figsize=(12, 11))
col = ["#c0392b" if s.startswith("projet") else "#8e44ad" if "souterrain" in s else "#1f5fa8" for s in o.source_facteur]
g.barh(o.pays, o.ligne_1000km_meur_gw, color=col)
for y, (v, f) in enumerate(zip(o.ligne_1000km_meur_gw, o.facteur)):
    g.text(v + 15, y, f"{v:,.0f} M€ (facteur {f:.2f})".replace(",", " ").replace(".", ","), va="center", fontsize=8.5)
g.axvline(500, color="black", ls="--", lw=1)
g.text(1300, 29.2, "Tirets : prix européen prudent utilisé jusqu'ici, 500 M€", fontsize=8.5)
g.set_xlabel("Coût d'une ligne à courant continu de 1 000 km, convertisseurs compris, en M€ par GW")
g.set_xlim(0, 3200)
g.plot([], [], color="#c0392b", lw=6, label="Calé sur un projet réel du pays")
g.plot([], [], color="#8e44ad", lw=6, label="Souterrain imposé par la loi (SuedLink)")
g.plot([], [], color="#1f5fa8", lw=6, label="Niveau des prix de la Banque mondiale")
g.legend(loc="lower right", fontsize=9)
g.set_title("Le prix d'une grande ligne électrique dans les 30 premiers pays fossiles", fontsize=12)
g.grid(axis="x", alpha=0.3)
fig.tight_layout()
fig.savefig(f"{D}/schema_prix_lignes_electriques_pays.png", dpi=110)
