timetable型のデータで年を除く、月日のみの傾向を可視化する方法
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
timetable型のデータで時系列に年月日のdatetime型のデータとあるデータがあるとします。
dt1_2016 = datetime("2016-04-24"); data1 =2;
dt2_2016 = datetime("2016-05-24"); data2 =6;
dt1_2017 = datetime("2017-04-24"); data3 =1;
dt2_2017 = datetime("2017-05-24"); data4 =12;
dtData = [dt1_2016 dt2_2016 dt1_2017 dt2_2017]';
Data = [data1 data2 data3 data4]';
ttData = table2timetable(table(dtData,Data))
このデータの月日(年は除く)の傾向を可視化したいです。しかし、datetime型は年までセットで
持ってるため、以下のようにplotすると横軸は同じ「4月24日」と「5月24日」でも2016年と2017年のデータを
別物として認識し、plotします。
plot(ttData.dtData,ttData.Data)
本来であれば、これで良いのですが、年は関係なく、横軸に4月から3月までをとり、
月日のみの傾向がみたい場合は、どうすればいいでしょうか。
(つまり、2016年の「4月24日」と2017年の「4月24日」を同じx軸のデータとしてplotしたいです。)
何か良い方法ありますでしょうか。教えていただければ幸いです。
0 commentaires
Réponse acceptée
Atsushi Ueno
le 1 Avr 2023
カレンダー期間配列(calendarDuration)を使えば良さそうですが、うるう年を無視する必要がありそうです。
単純に年月日を数値データにばらし、年だけを適当な値に変更した datetime 型を再度作成して使うのはどうでしょう。
N = 10;
dtData = [datetime(randi(2023,N,1),4,24,0,0,0); ...
datetime(randi(2023,N,1),5,24,0,0,0)];
Data = randi(12,N*2,1);
ttData = timetable(dtData,Data)
dtvec = datevec(ttData.dtData); % 日付と時刻を成分のベクトルに変換
dtvec(:,1) = 2000; % 年のみ適当な値に統一する
ttData.dtData = datetime(dtvec); % 再度 datetime 型に変換
scatter(ttData.dtData,ttData.Data);
xlim([datetime(2000,4,1,0,0,0),datetime(2000,6,30,0,0,0)]);
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Calendar dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!