Affichage graphique date/heure PLX-DAQ

Signaler
Messages postés
1
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
3 juin 2021
-
Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
-
Bonjour,

Nous sommes en projet de fin d'année, et nous devons réaliser un programme Arduino associé à un programme python. Notre système doit alors mesurer la température et le taux d'humidité en fonction du temps grâce au logiciel PLX-DAQ relié à excel. Seulement, lors de l'affichage sur python du graphique en fonction du temps. Le temps affichés aux abscisses est sous la forme standard (de 0.001 à 1 pour 24h) et pas sous la forme HH%MM%%SS. Nous voulions savoir comment convertir la forme standard en forme heure, minutes et secondes sur python, merci d'avances. Voici notre programme python :

import xlrd
import datetime
import time
import matplotlib.pyplot as plt
import numpy as np
document = xlrd.open_workbook("PLX-DAQ_R2.xlsm") # Ouverture du fichier

print("Nombre de feuilles: "+str(document.nsheets)) # Affichage
print("Noms des feuilles: "+str(document.sheet_names())) # Affichage

feuille_1 = document.sheet_by_index(0) # Méthode 1 : récupère nos valeurs par le numéros de la feuilles
feuille_1 = document.sheet_by_name("Simple Data") # Méthode 2 : récupère nos valeurs par le numéros de la feuilles

print("Format de la feuille 1:") # Affichage
print("Nom: "+str(feuille_1.name)) # Affichage
print("Nombre de lignes: "+str(feuille_1.nrows)) # Affichage
print("Nombre de colonnes: "+str(feuille_1.ncols)) # Affichage

cols = feuille_1.ncols # Stockage de colonne dans une variable
rows = feuille_1.nrows # Stockage de ligne dans une variable

X = [] # Création d'une liste
Y= [] # Création d'une liste

for r in range(1, rows): # Boucle pour remplir mes listes X,Y
X += [feuille_1.cell_value(rowx=r, colx=0)]
Y += [feuille_1.cell_value(rowx=r, colx=1)]

R=[e*24 for e in X]
#S= [e-int(e) for e in R ]
#SS=["{}".format(e) for e in S]
#print(SS)
print (R)
plt.plot(R, Y) # Création du graphe
plt.gcf().autofmt_xdate() # plus jolie
plt.show() # Affichage du graphe

X = [] # Création d'une liste
Y= [] # Création d'une liste

for r in range(1, rows): # Boucle pour remplir mes listes X,Y
X = datetime.datetime.now()
X += [feuille_1.cell_value(rowx=r, colx=0)]
# X = myDatetime.strftime('%H:%M:%S')
Y += [feuille_1.cell_value(rowx=r, colx=2)]

plt.plot(X, Y) # Création du graphe
plt.gcf().autofmt_xdate() # plus jolie
plt.show() # Affichage du graphe

2 réponses

Messages postés
20363
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 632
Bonjour,

Je n'y connais rien en PLX-DAQ et Arduino mais à la lecture de cet article, je comprends que l'horodatage des données récupérées est automatiquement fait et envoyé à Excel donc votre souci est plutôt de récupérer ces horodatages dans le fichier Excel.

Ritchi
Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
bonjour,
ceci vous inspirare peut-être:
import datetime
tempsX = datetime.datetime.now()
tempsX += datetime.timedelta(hours=2)
X = tempsX.strftime('%H:%M:%S')
print(X)
Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
ou plutôt:
maintenant=datetime.datetime.now()
for r in range(1, rows): # Boucle pour remplir mes listes X,Y
    tempsX= maintenant + [feuille_1.cell_value(rowx=r, colx=0)]
    X += tempsX.strftime('%H:%M:%S')
    Y += [feuille_1.cell_value(rowx=r, colx=2)]