This commit is contained in:
Tykayn 2025-07-28 16:37:50 +02:00 committed by tykayn
parent 66bbce5e85
commit a695a8ef03
9 changed files with 353 additions and 12 deletions

View file

@ -13,6 +13,31 @@ import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
import argparse
import csv
def get_city_name(insee_code):
"""
Récupère le nom de la ville à partir du code INSEE.
Args:
insee_code: Code INSEE de la commune
Returns:
Nom de la ville ou None si non trouvé
"""
try:
csv_path = os.path.join(os.path.dirname(__file__), "osm-commerces-villes-export.csv")
if os.path.exists(csv_path):
with open(csv_path, 'r') as f:
reader = csv.DictReader(f)
for row in reader:
if row.get('zone') == insee_code:
return row.get('name')
return None
except Exception as e:
print(f"Erreur lors de la récupération du nom de la ville: {e}")
return None
def parse_args():
@ -217,15 +242,26 @@ def generate_graph(df, output_path=None):
plt.legend()
zone_label = ""
city_name = None
# Ajouter des informations sur la commune
if "code_insee" in df.columns and len(df["code_insee"].unique()) == 1:
insee_code = df["code_insee"].iloc[0]
plt.figtext(0.02, 0.02, f"Commune: {insee_code}", fontsize=10)
zone_label = insee_code
city_name = get_city_name(insee_code)
if city_name:
plt.figtext(0.02, 0.02, f"Commune: {insee_code} - {city_name}", fontsize=10)
zone_label = f"{insee_code} - {city_name}"
else:
plt.figtext(0.02, 0.02, f"Commune: {insee_code}", fontsize=10)
zone_label = insee_code
elif "zone" in df.columns and len(df["zone"].unique()) == 1:
zone = df["zone"].iloc[0]
plt.figtext(0.02, 0.02, f"Zone: {zone}", fontsize=10)
zone_label = zone
city_name = get_city_name(zone)
if city_name:
plt.figtext(0.02, 0.02, f"Zone: {zone} - {city_name}", fontsize=10)
zone_label = f"{zone} - {city_name}"
else:
plt.figtext(0.02, 0.02, f"Zone: {zone}", fontsize=10)
zone_label = zone
plt.title(f"{zone_label} : {label_objet} dans le temps")
@ -333,12 +369,29 @@ def generate_completion_graph(df, output_path=None):
plt.legend()
# Ajouter des informations sur la commune
zone_label = ""
if "code_insee" in df.columns and len(df["code_insee"].unique()) == 1:
insee_code = df["code_insee"].iloc[0]
plt.figtext(0.02, 0.02, f"Commune: {insee_code}", fontsize=10)
city_name = get_city_name(insee_code)
if city_name:
plt.figtext(0.02, 0.02, f"Commune: {insee_code} - {city_name}", fontsize=10)
zone_label = f"{insee_code} - {city_name}"
else:
plt.figtext(0.02, 0.02, f"Commune: {insee_code}", fontsize=10)
zone_label = insee_code
elif "zone" in df.columns and len(df["zone"].unique()) == 1:
zone = df["zone"].iloc[0]
plt.figtext(0.02, 0.02, f"Zone: {zone}", fontsize=10)
city_name = get_city_name(zone)
if city_name:
plt.figtext(0.02, 0.02, f"Zone: {zone} - {city_name}", fontsize=10)
zone_label = f"{zone} - {city_name}"
else:
plt.figtext(0.02, 0.02, f"Zone: {zone}", fontsize=10)
zone_label = zone
# Mettre à jour le titre avec le nom de la zone
if zone_label:
plt.title(f"{zone_label} : Évolution du taux de complétion dans le temps")
# Ajouter la date de génération
now = datetime.now().strftime("%Y-%m-%d %H:%M")