• # Graphique "barre" avec python

    Posté par . En réponse au journal Faire des graphiques à partir de données : comparaison. Évalué à 2.

    Je me suis attaqué aux ventes de l'Iphone par trimestre en Python :vente Iphone

    À partir d'un fichier data.dat de type : Semestre,Chiffre

    #!/usr/bin/env python3
    ###galenterie d'usage
    import matplotlib.pyplot as plt
    import numpy as np
    ####lecture donnees
    with open("data.dat", "r") as f:
     donnees = f.readlines()
     million = []
     trimestre = []
     for ligne in donnees[1:]:
     txt = ligne.split(",") 
     million.append(txt[1])
     trimestre.append(txt[0])
    ####passage vers matplotlib/numpy
    million = np.array(million)
    million = million.astype(np.float)
    ####calcul du cumul
    millionc = np.zeros(len(million))
    millionc[0]=million[0]
    for i in range(1,len(donnees)-1):
     millionc[i] = millionc[i-1]+million[i]
    ####graphique
    x = np.arange(len(million))
    rects1=plt.bar(x, millionc, width=1 , align='center')
    rects2=plt.bar(x, million, width=1 , align='center', color='red')
    plt.xticks( x , (trimestre))
    plt.xlabel('Mois')
    plt.ylabel('Millions')
    plt.title('Ventes de l\'Iphone')
    def autolabel(rects):
     # legendes
     for rect in rects:
     height = rect.get_height()
     plt.text(rect.get_x()+rect.get_width()/2., 1.0*height, '%d'%int(height),
     ha='center', va='bottom')
    autolabel(rects1)
    autolabel(rects2)
    plt.legend( (rects1[0], rects2[0]), ('Ventes cumulées', 'Ventes mensuelles'),loc = 2 )
    plt.show()

    Si quelqu'un a une idée pour avoir une légende visible ...