-
Notifications
You must be signed in to change notification settings - Fork 0
/
parcoursup_candidats_recus.py
49 lines (40 loc) · 1.83 KB
/
parcoursup_candidats_recus.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import matplotlib.pyplot as plt
import pandas as pd
def main():
# Charger les données à partir du fichier CSV
data = pd.read_csv("Parcoursup 2023 - Total.csv", delimiter=";")
# Extraire les colonnes nécessaires
dates = pd.to_datetime(data["Date"], format="%d/%m") # type: ignore
recus = data["Candidats ayant reçu une ou plusieurs propositions d'admission"]
# Créer les limites des bacs pour l'histogramme en escalier
x = range(len(dates) + 1)
y = list(recus) + [
recus.iloc[-1]
] # Candidats ayant reçu une ou plusieurs propositions
# Créer le graphique avec la courbe en vert pour les candidats ayant reçu une ou plusieurs propositions
plt.figure(figsize=(8, 6))
plt.step(x, y, where="post", color="green", linewidth=2, alpha=0.7)
plt.xlabel("Date")
plt.ylabel("Candidats ayant reçu une ou\nplusieurs propositions d'admission")
plt.title(
"Évolution en fonction du temps du nombre de\ncandidats ayant reçu des propositions sur Parcoursup en 2023"
)
x_ticks = range(0, len(dates), 3)
x_labels = dates[x_ticks].dt.strftime("%d/%m") # type: ignore
plt.xticks(x_ticks, x_labels, rotation=45)
# Ajuster les limites de l'axe x pour supprimer l'espace blanc à gauche
plt.xlim(0, len(dates) - 1)
plt.ylim(0, 800000)
plt.twinx()
plt.ylim(0, (800000 / 827271) * 100)
plt.ylabel("Pourcentage en fonction du nombre de candidats")
plt.tight_layout()
plt.savefig(
"Évolution en fonction du temps du nombre de candidats ayant reçu des propositions sur Parcoursup en 2023.svg"
)
print(
"Le graphique a été enregistré dans le fichier 'Évolution en fonction du temps du nombre de candidats ayant reçu des propositions sur Parcoursup en 2023.svg'."
)
plt.close()
if __name__ == "__main__":
main()