Bonjour,
J'ai des fichiers .dat contenant des données représentant des températures en fonction du temps, dont la première colonne est l'heure de la mesure, et les autres colonnes les températures, comme dans cet exemple:
00:00:01 19.01 19.34 19.98
00:05:01 19.01 19.34 19.66
00:10:01 19.12 19.34 19.98
00:15:02 19.01 19.66 19.98
00:20:01 19.01 19.34 19.98
00:25:01 19.01 19.34 19.66
00:30:01 19.12 19.34 19.98
00:35:02 19.01 19.66 19.98
00:45:01 19.01 19.66 19.98
etc...
(Les fichiers réels ont un nombre variable de lignes (entre 100 et 300), et 11 colonnes de températures au lieu de 3, voir pièce jointe)
Je souhaite tracer ces températures en fonction de l'heure.
Mon programme ressemble à ça:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| adresse = 'C:\Users\Jeremy\Desktop\Temperatures\20131102_rdc.dat';
%% %% Collecte des données %%%%
[heure, T1, T2, T3] = textread(adresse, '%8c %f %f %f');
% Conversion de l'heure en nombre (Pour tracer en fonction de ces nombres)
heurenum = datenum(heure, 'HH:MM:SS');
%% %% Tracé %%%%
plot(heurenum, T1, heurenum, T2, heurenum, T3)
title('T = f(t)')
xlabel('Heure')
ylabel('Température')
legend('T1', 'T2', 'T3') |
Le tracé fonctionne, mais en abscisse j'ai 7,3524*10^5 qui se répète (c'est la valeur retournée par datenum, qui en réalité n'est pas constante quand on affiche plus de chiffres après la virgule), or j'aimerais pouvoir y afficher à la place les heures telles qu'elles sont écrites dans la première colonne du fichier: en format hh:mm:ss.
Pour cela j'ai essayé de rajouter ça:
set(gca, 'XTickLabel', heure)
Mais ça n'affiche que les 4 ou 5 premières heures réparties uniformément sur la largeur du graphique, au lieu de les afficher chacune en dessous du point de température correspondant.
J'ai essayé aussi ça:
set(gca, 'XTick', 1: (size(heure)), 'XTickLabel', heure)
Mais dans ce cas ça n'affiche plus rien en abscisse.
Auriez-vous une solution à m'indiquer s'il-vous-plaît ?
Partager