import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
T="#222222";G="#555555"
plans=["Optimisé soleil\nscénario B\n19/10","Artesia\nscénario A\navec Francis","Artesia\nscénario B\n(référence)"]
postes=["Hydroloop plan A","V14 sites fossiles et mines","V14 Soleil","V14 Soleil mixte","Pacha et Gold","V18 Sky et Artesia","V15 Canyon","Panneaux hybrides","Joues, corridor, couronne","Titan Claudia","Réseaux"]
cols=["#1f4e8c","#3f7fc4","#f2b705","#17a2b8","#2e7d5b","#d9534f","#6a4c93","#c47a12","#e0c070","#7a7a7a","#b0b0b0"]
twh=[[9120,1328,2546,2556,483,0,405,831,49,43,0],[9120,1328,2546,2556,483,0,405,831,49,43,0],[9120,1328,2546,2556,483,0,405,831,49,43,0]]
md=[[4270,546,1187,1176,91,0,747,526,28,49,1000],[4270-200,546-20,1187-34,1176-34,91,43,747,526,28,49,1000],[4270,546,1187,1176,91,43,747,526,28,49,1000]]
fig,(a1,a2,a3)=plt.subplots(1,3,figsize=(20,9),dpi=110,gridspec_kw={"width_ratios":[1,1,0.8]})
fig.patch.set_facecolor("white")
for a,data,titre,u,tot in ((a1,twh,"Électricité fossile remplacée, TWh par an : 17 360, 95 %, les Sky déplacent sans produire","TWh",["17 360","17 360","17 360"]),(a2,md,"Investissement sur 25 ans, milliards d'euros","Md€",["9 620","9 373","9 663"])):
    x=range(len(plans))
    bas=[0]*3
    for i,p in enumerate(postes):
        v=[d[i] for d in data]
        a.bar(x,v,bottom=bas,color=cols[i],edgecolor="white",lw=0.6,width=0.62,label=p)
        bas=[b+w for b,w in zip(bas,v)]
    for xi,b,tt in zip(x,bas,tot):
        a.text(xi,(b+60 if u=="Md€" else b*1.01),tt,ha="center",va="bottom",fontsize=13,color=T,weight="bold",bbox=dict(facecolor="white",edgecolor="none",pad=1.5),zorder=5)
    a.set_xticks(list(x));a.set_xticklabels(plans,fontsize=10,color=T)
    a.set_title(titre,fontsize=11.5,color=T,pad=12)
    a.set_ylabel(u,color=G);a.spines["top"].set_visible(False);a.spines["right"].set_visible(False)
    a.tick_params(axis="y",colors=G);a.set_ylim(0,max(bas)*1.13 if u=="TWh" else 12000)
a2.axhline(10000,color="#c0392b",lw=1.6,ls="--",zorder=1)
a2.text(-0.4,10350,"objectif : 10 000",color="#c0392b",fontsize=11,ha="left",va="bottom",weight="bold")
lab=["Réserve de plusieurs\njours, TWh","Puissance ajoutée\nles jours sans vent, GW","Surplus du réseau\nabsorbé, TWh par an"]
av=[0,0,0];ap=[5.9,15.8,37.5]
xx=range(3)
a3.bar([i-0.18 for i in xx],av,width=0.36,color="#b0b0b0",label="Optimisé soleil")
a3.bar([i+0.18 for i in xx],ap,width=0.36,color="#d9534f",label="Artesia")
for i,v in enumerate(ap):
    a3.text(i+0.18,v+0.6,f"{v:.1f}".replace(".",","),ha="center",va="bottom",fontsize=12,color=T,weight="bold")
    a3.text(i-0.18,0.6,"0",ha="center",va="bottom",fontsize=11,color=G)
a3.set_xticks(list(xx));a3.set_xticklabels(lab,fontsize=10,color=T)
a3.set_title("Ce que les 327 Sky ajoutent au plan",fontsize=11.5,color=T,pad=12)
a3.spines["top"].set_visible(False);a3.spines["right"].set_visible(False);a3.tick_params(axis="y",colors=G);a3.set_ylim(0,44)
a3.legend(fontsize=10,frameon=False,loc="upper left")
h,l=a1.get_legend_handles_labels()
fig.legend(h,l,loc="lower center",ncol=6,fontsize=10,frameon=False,bbox_to_anchor=(0.5,0.055))
fig.suptitle("Plan mondial Artesia : le plan optimisé soleil plus 327 Hydroloop V18 Sky et Sky Artesia, l'eau gardée en haut pour les jours sans vent, 22/10/2026",fontsize=15,color=T,weight="bold",y=0.98)
fig.text(0.5,0.012,"Artesia : 225 Sky 2 sur les Gold 2, 92 Sky 3 sur les Gold 3 et les Pacha 3, 10 Sky Artesia sur les sources artésiennes ; 42,6 Md€, 1 191 GW garantis le soir, 5,9 TWh de réserve de plusieurs jours.\nScénario A : Francis réversible comptée (-289 Md€ répartis sur l'Hydroloop). 95 % des fossiles, 12,2 TWh de stockage quotidien, 410 km³ d'eau régulée. www.mulo.world, CC BY 4.0",ha="center",fontsize=9.5,color=G)
plt.tight_layout(rect=(0,0.14,1,0.95))
plt.savefig("schema_plan_mondial_artesia.png",dpi=110,facecolor="white")
