Spaces:
Sleeping
Sleeping
| import matplotlib.pyplot as plt | |
| import io | |
| from PIL import Image | |
| def create_graph(delta_uf_values, ges_system, ges_material, delta_uf, intersection_uf, intersection_ges): | |
| fig, ax = plt.subplots(figsize=(8, 6)) | |
| plt.subplots_adjust(bottom=0.25) | |
| ax.fill_between(delta_uf_values, 0, ges_material, color='blue', alpha=0.3, label="Réutilisation préférable") | |
| ax.fill_between(delta_uf_values, ges_material, max(ges_system.max(), ges_material.max()), color='red', alpha=0.3, | |
| label="Remplacement optimal") | |
| ax.plot(delta_uf_values, ges_system, 'r--', label="GES évités Exploitation") | |
| ax.plot(delta_uf_values, ges_material, 'b-', label="GES émis nouveau cadre") | |
| ax.axvline(delta_uf, color='green', linestyle=':', label=f"ΔUf = {delta_uf:.2f}") | |
| if intersection_uf is not None: | |
| ax.scatter(intersection_uf, intersection_ges, color='black', zorder=3) | |
| ax.annotate(f"Point d'équilibre\n({intersection_uf:.2f})", (intersection_uf, intersection_ges), | |
| textcoords="offset points", xytext=(-40, 10), ha='center', fontsize=10, fontweight='bold', | |
| color="black") | |
| ax.set_xlabel("ΔUf (W/m².K)") | |
| ax.set_ylabel("GES (kgCO₂/m²)") | |
| ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.15), ncol=2, frameon=False) | |
| ax.set_title("Analyse des émissions de GES en fonction de ΔUf") | |
| ax.grid() | |
| buf = io.BytesIO() | |
| plt.savefig(buf, format="png") | |
| plt.close(fig) | |
| buf.seek(0) | |
| img = Image.open(buf) | |
| return img | |