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…
Reference in new issue