Bonjour à tous,

J'aimerais pouvoir faire un plot avec un fichier de données qui contient 3 colonnes : le jour (format day-month-year), l'heure (format Hour-minutes-secondes), et une donnée en troisième colonne.
J'ai deux fichiers, un qui contient les dernières 24h et un qui contient les 7 derniers jours.
Pour le fichier des dernières 24h je peux faire l'impasse sur le jour et je voudrais obtenir un plot de cette donnée avec la deuxième colonne en abscisse.
J'ai cherché des tutos sur le web mais j'ai du mal à obtenir un résultat...

Voilà mon début de 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# coding: utf-8
import glob
import base64
import csv
import sys
import os
import time
from datetime import datetime
from pathlib import Path
import smbus as smbus
 
from tkinter import * 
import tkinter as tk
import tkinter.ttk as ttk
 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.dates
 
 
current_datetime = datetime.now()
current_date = current_datetime.strftime("%B%Y") 
Mois=['janvier','février','mars','avril','mai','juin','juillet','aout','septembre','octobre','novembre','décembre']
mois = current_datetime.date().month
Q = Mois[mois-1]
current_date = Q + current_datetime.strftime("%Y") 
 
Record_dir = '/home/pi/Domotique/Donnees_Temperature/' + current_date
Record_file_Temperature = Record_dir + f"/{current_date}.txt"
Day_File_Salon = Record_dir + f"/Data_Temp_Day_Salon.txt"
Day_File_Chambre = Record_dir + f"/Data_Temp_Day_Chambre.txt"
Day_File_ECS = Record_dir + f"/Data_Temp_Day_ECS.txt"
 
 
 
data_plot_Salon_24H = pd.read_csv(Day_File_Salon)
print(data_plot_Salon_24H.shape)
#data_plot_Salon_24H.tail()
 
x = data_plot_Salon_24H.iloc[0:len(data_plot_Salon_24H), 1:2] 
y = data_plot_Salon_24H.iloc[0:len(data_plot_Salon_24H), 2:3] 
print(x)
print(y)
 
dates = matplotlib.dates.date2num(x)
plt.plot_date(dates, y)
plt.show()
 
 
 
#x,y = (data_plot_Salon_24H[:]),(data_plot_Salon_24H[:,2])
#plt.plot(x,y)
# beautify the x-labels
#plt.gcf().autofmt_xdate()
 
 
 
 
 
#Plot temperature
#data_plot_Salon_24H[:,1] = pd.to_datetime(data_plot_Salon_24H[:,1])
#x=data_plot_Salon_24H[:,0]
 
#y=data_plot_Salon_24H[:,2]
#plt.plot(x, y)
 
#fig, ax = plt.subplots()
#ax1 = fig.add_subplot(211)
#ax1.bar(x, y, align='center')
 
#ax2 = fig.add_subplot(212)
#ax2.bar(range(len(y)), y, align='center')
#plt.xticks(range(len(x)), x)
 
# Définir les emplacements et les étiquettes des marqueurs d'axe
#ax.set_xticks(data_plot_Salon_24H[:,1])
#ax.set_xticklabels(data_plot_Salon_24H[:,1].dt.strftime("%H:%M:%S"))
et le fichier source :Data_Temp_Day_Salon.7z

La ligne dates = matplotlib.dates.date2num(x) renvoie une erreur :
Traceback (most recent call last):
File "/home/pi/Domotique/Programmes/Interface_graphique_test.py", line 59, in <module>
dates = matplotlib.dates.date2num(x)
File "/home/pi/.local/lib/python3.7/site-packages/matplotlib/dates.py", line 446, in date2num
d = d.astype('datetime64[us]')
ValueError: Error parsing datetime string "22:36:54" at position 2

Ça fait maintenant un bon moment que je cherche et que j'essaie plein de trucs mais je ne trouve pas de solution. Auriez-vous une solution, un bon tuto pour faire des plot avec la date/heure en abscisse ?


Merci d'avance