Adding histogram
This commit is contained in:
parent
204cb40614
commit
b982ba45aa
1 changed files with 29 additions and 6 deletions
35
main.py
35
main.py
|
@ -786,11 +786,10 @@ class GesMag:
|
|||
Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w')
|
||||
|
||||
frameSuivi = LabelFrame(enfant, text="Histogramme des ventes", font=self.font)
|
||||
frameSuivi.grid(column=1, row=0, sticky='n', padx=5)
|
||||
frameSuivi.grid(column=1, row=0, sticky="ns", padx=5)
|
||||
|
||||
def ___actualisationCanvas():
|
||||
"""Affiche l'histogramme des vente d'un utilisateur dans un canvas."""
|
||||
print(f"Affichage des stats de {utilisateur['id']} dans {histogramme}...")
|
||||
donnees = Stats().recuperationDonneesCSV(utilisateur['id'])
|
||||
if len(donnees) <= 0:
|
||||
histogramme.create_text(10, 10, anchor='w', text="Aucun résultat récemment enregistré")
|
||||
|
@ -799,11 +798,35 @@ class GesMag:
|
|||
# On retire l'ID et le pseudo du dictionnaire
|
||||
donnees.pop("id")
|
||||
donnees.pop("pseudo")
|
||||
for date in sorted(donnees.keys()): # on regarde les dates dans l'ordre
|
||||
print(donnees[date])
|
||||
histogramme.create_text(10, 10, anchor='w', text="Résultat présents...")
|
||||
ecart = 10
|
||||
couleurs = [
|
||||
"CadetBlue3",
|
||||
"HotPink2",
|
||||
"IndianRed1",
|
||||
"MediumPurple2",
|
||||
"burlywood2",
|
||||
"brown3",
|
||||
"chocolate1",
|
||||
"goldenrod2"
|
||||
]
|
||||
maxVente = 0 # par défaut la meilleur vente est de 0
|
||||
for prix in donnees.values():
|
||||
prix = float(prix)
|
||||
if prix > maxVente: # si on trouve une valeure plus grande
|
||||
maxVente = prix
|
||||
|
||||
histogramme = Canvas(frameSuivi, width=270, height=144)
|
||||
for date in sorted(donnees.keys()): # on regarde les dates dans l'ordre
|
||||
# Affichage de la date
|
||||
histogramme.create_text(ecart + 10, 60, anchor='w', text=date, font=("Arial", 8), angle=90)
|
||||
# Affichage de la barre
|
||||
hauteur = 190 - (float(donnees[date]) * 100) / maxVente # calcul de la hauteur en fonction de la plus grosse vente
|
||||
# On fait `- 20` au résultat pour allonger la barre, aussi on met une barre de `2` pixel quand valeur petite
|
||||
histogramme.create_rectangle(ecart, 180, ecart + 15, hauteur - 20 if hauteur < 180 else 178, fill=couleurs.pop())
|
||||
# Affichage du montant
|
||||
histogramme.create_text(ecart, 190, anchor='w', text=donnees[date], font=("Arial", 8))
|
||||
ecart += 30
|
||||
|
||||
histogramme = Canvas(frameSuivi, width=270, height=200)
|
||||
histogramme.grid()
|
||||
|
||||
___actualisationCanvas()
|
||||
|
|
Reference in a new issue