Bonjour à tous,

Je souhaite tracer plusieurs courbes sur le même graphique à partir d'un dico qui contient les données. Le dico est de la forme suivante :

dico = {k1 : [(data1, value1), (data2, value2), ...], k2 : [(data1, value1), (data2, value2), ...], ...}

et donc je voudrai tracer sur le même graphique :
- la courbe k1 avec en X : data1, data2, ... et en Y : value1, value2,...
- la courbe k2 avec en Y : data1, data2, ... et en Y : value1, value2,...
- ...

or je n'arrive pas à superposer les courbes, je dois fermer le premier traçage pour afficher les autres.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
import matplotlib.pyplot as plt
 
def plotting_dico(dico, titre):
    """
    Plot a partir des data contenus dans dico
    """
    x = []
    y = []
    lstPlot = []
    for key, values in dico.iteritems():
        for i in  sorted(values):
            # convertion des dates sting en date obj
            dateObj = datetime.strptime(i[0], "%d/%m/%y-%H:%M:%S")
            line = dateObj, i[1]
            lstPlot.append(line)
        for i in sorted(lstPlot):
            x.append(i[0])
            y.append(i[1])
 
        # plotting
        la = plt.plot(x, y, label='Circle')
        plt.xlabel('Dates')
        plt.ylabel(titre)
        #plt.plot(x, y)
        plt.title("Modbus " + key)
    plt.show()
    return
de plus le label 'Circle' ne s'affiche pas ...


Merci de votre aide