Partage
  • Partager sur Facebook
  • Partager sur Twitter

ajouter scatter sur live plot

using matplotlib

    9 août 2015 à 12:51:17

    bonjours 

    je suis en train de travailler sur un projet le but de ce projet c'est affichee les valeur des 4 capteur sur 4 graph (live plot)

    le probleme que je rencontre c'est que je veux affiché  proche de chaque point sont valeur 

    voila un exemple

    voila mon code :

    import serial # import Serial Library
    import time #import time 
    import numpy  # Import numpy
    import matplotlib.pyplot as plt #import matplotlib library
    from drawnow import *
    
    
    temperature= []
    vitesse= []
    charge= []
    current= []
    
    arduinoData = serial.Serial('com5', 9600) #Creating our serial object named arduinoData
    plt.ion() #Tell matplotlib you want interactive mode to plot live data
    cnt=0
    
    
    def makeFig(): #Create a function that makes our desired plot
        
        plt.subplot(2,2,1)
        plt.title('Live Streaming Temperature Sensor Data')
        plt.ylabel('Temperature C')
        plt.grid(True)
        plt.plot(temperature, 'ro-')
                    
        plt.subplot(2,2,2)
        plt.title('Live Streaming Speed Sensor Data')
        plt.ylabel('Speed KM/H')
        plt.grid(True)
        plt.plot(vitesse, 'bo-')
    
        plt.subplot(2,2,3)
        plt.title('Live Streaming SOC Sensor Data')
        plt.ylabel('Battery Charge %')
        plt.grid(True)
        plt.plot(charge, 'go-')
    
        plt.subplot(2,2,4)
        plt.title('Live Streaming Current Sensor Data')
        plt.ylabel('Current A')
        plt.grid(True)
        plt.plot(current, 'yo-')
        
    
    
    
    while True: # While loop that loops forever
        while (arduinoData.inWaiting()==0): #Wait here until there is data
            pass #do nothing
        arduinoString = arduinoData.readline() #read the line of text from the serial port
        dataArray = arduinoString.split(';')   #Split it into an array called dataArray
        temp = float (dataArray[0])
        vite = float (dataArray[1])
        char = float (dataArray[2])
        curr = float (dataArray[3])
        temperature.append(temp)                     #Build our temperature array by appending temp readings
        vitesse.append(vite)                     #Build our vitesse array by appending temp readings
        charge.append(char)                     #Build our charge array by appending temp readings
        current.append(curr)                     #Build our current array by appending temp readings
        drawnow(makeFig)                       #Call drawnow to update our live graph
        plt.pause(0.00001)
        cnt=cnt+1
        if(cnt>50):
            temperature.pop(0)
            vitesse.pop(0)
            charge.pop(0)
            current.pop(0)
        
        
        
    

    est ce qu'il ya des idées ou des suggestion

    • Partager sur Facebook
    • Partager sur Twitter

    ajouter scatter sur live plot

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown