日付や時刻の時系列データを、x軸を日付にしてプロットする
サマーハイドロ2012で観測している潮汐データ (Radar gauge tide data)
tide.txt
Station Name
Xpert
06/03/2012,00:00:00,h-3611,2.040,M,G
06/03/2012,00:00:01,h-3611,2.040,M,G
06/03/2012,00:00:02,h-3611,2.040,M,G
まずデータを読み込む
fname=['C:\Users\XXXX\Desktop\Tide\MATLAB\'];
[date,time,type,height,unit,sign]=textread([fname 'tide.txt'],'%s%s%s%f%s%s','headerlines',2,'delimiter',',');
日付を datevec を使って、日付ベクトルに変換する
date_1 = datevec(date);
%06/05/2012 ---> [2012 6 5 0 0 0]
時刻を datevec を使って、時刻ベクトルに変換する
time_1 = datevec(time);
% 16:00:00 ---> [2012 1 1 16 0 0]
日付ベクトルと時刻ベクトルを合体して、日付時刻ベクトルにする
dates = [date_1(:,1:3) time_1(:,4:6)];
% [2012 6 5 16 0 0]
日付時刻ベクトルをシリアル日付番号に変換する
dates_num = datenum(dates);% dates_num = 735025.6
プロットする
plot(dates_num,height,'k')
x軸の範囲を指定する
xlim([dates_num(599),dates_num(end)])
set(gca,'Xtick',dates_num(599:240:end))
x軸の軸ラベルの間隔を指定する。
データは6分毎なので、1日ずつ軸ラベルをつける場合は
1日=6分×10×24=240をデータ間隔に指定する。
datetick('x',6,'keeplimits','keepticks')
x軸の軸ラベルをフォーマット6 ( mm/dd ) で表示させる
'keeplimits','keepticks' をつけないと1日ずつ表示されないので大事
x軸のラベル
xlabel('Date (UTC)','FontSize',14)
y軸のラベル
ylabel('Height above staff zero (m)','FontSize',14)
タイトル
title('Observed water level (6-min averaged) at York Harbor, ME ','FontSize',14)
x軸、y軸のラベルのフォントサイズを大きくする
set(gca,'FontSize',14)
グリッドを表示する
grid on
おしまい