Affichage graphique date/heure PLX-DAQ

Fermé
Louishirgair Messages postés 1 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 3 juin 2021 - 3 juin 2021 à 11:12
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 6 juin 2021 à 13:10
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

_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
6 juin 2021 à 12:50
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
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
6 juin 2021 à 13:05
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)
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
6 juin 2021 à 13:10
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)]   
0