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')
|
Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w')
|
||||||
|
|
||||||
frameSuivi = LabelFrame(enfant, text="Histogramme des ventes", font=self.font)
|
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():
|
def ___actualisationCanvas():
|
||||||
"""Affiche l'histogramme des vente d'un utilisateur dans un canvas."""
|
"""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'])
|
donnees = Stats().recuperationDonneesCSV(utilisateur['id'])
|
||||||
if len(donnees) <= 0:
|
if len(donnees) <= 0:
|
||||||
histogramme.create_text(10, 10, anchor='w', text="Aucun résultat récemment enregistré")
|
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
|
# On retire l'ID et le pseudo du dictionnaire
|
||||||
donnees.pop("id")
|
donnees.pop("id")
|
||||||
donnees.pop("pseudo")
|
donnees.pop("pseudo")
|
||||||
for date in sorted(donnees.keys()): # on regarde les dates dans l'ordre
|
ecart = 10
|
||||||
print(donnees[date])
|
couleurs = [
|
||||||
histogramme.create_text(10, 10, anchor='w', text="Résultat présents...")
|
"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()
|
histogramme.grid()
|
||||||
|
|
||||||
___actualisationCanvas()
|
___actualisationCanvas()
|
||||||
|
|
Reference in a new issue