日付や時刻に対応した​時系列データを、軸目​盛りに日付や時刻を表​示したグラフにするに​はどうすればよいです​か?

38 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
編集済み: MathWorks Support Team 2024 年 5 月 30 日
日付や時刻に対応した時系列データがあります。これを、軸目盛りに日付や時刻を表示したグラフにする方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2024 年 5 月 30 日
編集済み: MathWorks Support Team 2024 年 5 月 30 日
例えば、次の 1-3 の手順により、日付や時刻に対応した時系列データをグラフ表示することができます。
1. 時刻や日付をシリアル日付番号に変換
datenum関数を用いて、日付や時刻のデータをシリアル日付番号に変換します。
※ datenum関数で指定できる書式スタイルは、datestr関数のヘルプに記載されています。
※ MATLABにおけるシリアル日付番号とは、西暦0年1月1日を1とした経過日数です。小数を使用して時刻も表します。
2. グラフを表示
上記 1. で変換したシリアル日付番号を使用してplot関数などでグラフ表示を行います。
3. 軸ラベルの書式スタイルを変換
datetick関数を用いて、日付(時刻)に対応する軸の軸ラベルの書式スタイルを変更します。なお、datetick関数は、デフォルトでは軸の表示範囲や軸目盛りの位置も、自動で調整を行います。もし、軸範囲や軸目盛りの位置を変更したくない場合には、'keeplimits'(軸の表示範囲を保持)や'keepticks'(軸目盛りの位置を保持)のオプションをつけてdatetick関数を実行します。
※ datetick関数で指定可能な書式スタイルは、datetick関数のヘルプをご参照ください。
- 例1:日付に対応するデータのグラフ表示
% サンプルデータの定義
dates={'2006/04/01';'2006/05/01';'2006/06/01';'2006/07/01';
'2006/08/01';'2006/09/01';'2006/10/01';'2006/11/01';
'2006/12/01';'2007/01/01';'2007/02/01';'2007/03/01';};
x=rand(12,1);
% 日付文字列をシリアル日付番号に変換
dates_num = datenum(dates,'yyyy/mm/dd');
% グラフ表示
plot(dates_num,x)
xlim([dates_num(1),dates_num(end)]) % X軸範囲の指定
set(gca,'Xtick',dates_num(1:2:end)) % X軸の目盛り位置を指定
% X軸の目盛りラベルを日付書式に変更
datetick('x','yy/mm/dd','keeplimits','keepticks')
- 例2:時刻に対応するデータのグラフ表示
% サンプルデータの定義
times={'9:00';'10:00';'11:00';'12:00';
'13:00';'14:00';'15:00';'16:00';'17:00'};
x=rand(9,1);
% 日付文字列をシリアル日付番号に変換
times_num = datenum(times,'HH:MM');
% グラフ表示
area(times_num,x)
xlim([times_num(1),times_num(end)]) % X軸範囲の指定
set(gca,'Xtick',times_num) % X軸の目盛り位置を指定
% X軸の目盛りラベルを日付書式に変更
datetick('x','HH:MM','keeplimits','keepticks')
以下の URL にて関連情報をご覧いただけます。
・MATLAB ヘルプドキュメント:日付および時刻

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAxis Labels についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!