Ajout du script de génération des images

master
Alix JEUDI--LEMOINE 3 months ago
parent 8f79bfadd5
commit 86fd5c086a

@ -0,0 +1,88 @@
import numpy as np
import matplotlib.pyplot as plt
# Dictionnaire contenant
# => le numéro de la semaine en clé
# -> le nombre d'heures prévisionnelles
# -> le nombre d'heures réelles en valeur
# /!\ Le nombre d'heures est déjà multiplié par le nombre de personnes dans le groupe (4 personnes)
semaines = {
37: [32, 32],
38: [16, 16],
39: [24, 25],
40: [32, 34.5],
41: [24, 24],
42: [32, 40],
2: [24, 28],
3: [16, 16],
4: [24, 24],
# 5: [24, ],
# 6: [32, ],
# 7: [8, ],
}
cout_horaire_avec_charges_patronales = 12.16 # €/h (SMIC 2024)
# Séparation des semaines en deux périodes
semaines_periode_1 = {k: v for k, v in semaines.items() if k >= 37}
semaines_periode_2 = {k: v for k, v in semaines.items() if k < 37}
# Calcul des sommes cumulées pour la période 1
heures_previsionnelles_periode_1 = np.cumsum([i[0] for i in semaines_periode_1.values()])
heures_reelles_periode_1 = np.cumsum([i[1] for i in semaines_periode_1.values()])
# Graphique des heures prévisionnelles et réelles pour la période 1
plt.figure(figsize=(12, 6))
plt.plot(semaines_periode_1.keys(), heures_previsionnelles_periode_1, label="Prévisionnelles", marker='o')
plt.plot(semaines_periode_1.keys(), heures_reelles_periode_1, label="Réelles", marker='o')
plt.legend()
plt.title("Heures prévisionnelles et réelles cumulées (Période 1)")
plt.xlabel("Semaines")
plt.ylabel("Heures cumulées")
plt.grid()
# Calcul des sommes cumulées pour la période 2 en ajoutant les valeurs finales de la période 1
heures_previsionnelles_periode_2 = np.cumsum([i[0] for i in semaines_periode_2.values()]) + heures_previsionnelles_periode_1[-1]
heures_reelles_periode_2 = np.cumsum([i[1] for i in semaines_periode_2.values()]) + heures_reelles_periode_1[-1]
# Graphique des heures prévisionnelles et réelles pour la période 2
plt.figure(figsize=(12, 6))
plt.plot(list(semaines_periode_2.keys()), heures_previsionnelles_periode_2, label="Prévisionnelles", marker='o')
plt.plot(list(semaines_periode_2.keys()), heures_reelles_periode_2, label="Réelles", marker='o')
plt.legend()
plt.title("Heures prévisionnelles et réelles cumulées (Période 2)")
plt.xlabel("Semaines")
plt.ylabel("Heures cumulées")
plt.xticks(list(semaines_periode_2.keys())) # Set x-ticks to be the week numbers
plt.grid()
# Calcul des budgets cumulés pour la période 1
budget_previsionnel_periode_1 = heures_previsionnelles_periode_1 * cout_horaire_avec_charges_patronales
budget_reel_periode_1 = heures_reelles_periode_1 * cout_horaire_avec_charges_patronales
# Histogramme des budgets pour la période 1
plt.figure(figsize=(12, 6))
plt.bar(semaines_periode_1.keys(), budget_previsionnel_periode_1, width=0.4, label="Prévisionnel", align='center')
plt.bar(semaines_periode_1.keys(), budget_reel_periode_1, width=0.4, label="Réel", align='edge')
plt.legend()
plt.title("Budget prévisionnel et réel cumulés (Période 1)")
plt.xlabel("Semaines")
plt.ylabel("Budget cumulé (€)")
plt.grid()
# Calcul des budgets cumulés pour la période 2 en ajoutant les budgets de la période 1
budget_previsionnel_periode_2 = heures_previsionnelles_periode_2 * cout_horaire_avec_charges_patronales + budget_previsionnel_periode_1[-1]
budget_reel_periode_2 = heures_reelles_periode_2 * cout_horaire_avec_charges_patronales + budget_reel_periode_1[-1]
# Histogramme des budgets pour la période 2
plt.figure(figsize=(12, 6))
plt.bar(list(semaines_periode_2.keys()), budget_previsionnel_periode_2, width=0.4, label="Prévisionnel", align='center')
plt.bar(list(semaines_periode_2.keys()), budget_reel_periode_2, width=0.4, label="Réel", align='edge')
plt.legend()
plt.title("Budget prévisionnel et réel cumulés (Période 2)")
plt.xlabel("Semaines")
plt.ylabel("Budget cumulé (€)")
plt.xticks(list(semaines_periode_2.keys()))
plt.grid()
plt.show()
Loading…
Cancel
Save