Takuya Miyashita
This site
Web
Start:
*目盛を日付・時刻で表示 & ラベルの改行 [#j4033528]
**はじめに [#se86c9a7]
datetime型をplot等の軸に採用すると,自動で軸目盛りのラベ...
ただし目盛り位置やラベルのフォーマットを自由に編集したい...
下記のようにサンプルデータを作成した.~
#codeprettify(lang-matlab){{
% サンプル日時の行列を作成
% 1990/06/01 12:00 〜 1992/06/01 12:00
% 毎月1日の12:00の25要素
Y = [repmat(1990,[1 7]) repmat(1991,[1 12]) repmat(1992,[...
M = [6:12 1:12 1:6];
D = ones(1,25);
h = 12*ones(1,25);
m = zeros(1,25);
s = zeros(1,25);
date_vec = vertcat(Y,M,D,h,m,s)';
}}
#codeprettify(lang-matlab){{
% 25個の日時をdatetime型, シリアル値に変換
t = datetime(date_vec);
tn = datenum(date_vec);
% plot用に適当なデータを作成
A = peaks(25);
y = A(:,10);
}}
**datetick [#gb99c508]
シリアル値でplotすると,最初はシリアル値のまま.~
datetickで,シリアル値の軸を日付に設定できる.
#codeprettify(lang-matlab){{
% plot
figure
plot(tn,y,'bo-')
grid on
% 目盛位置の設定
tick = datenum(date_vec(1:6:end,:));
set(gca,'XTick',tick)
% datetickでフォーマット指定
datetick('x','mm/dd HH:MM','keeplimits','keepticks')
}}
keeplimitsとkeepticksで実行する前の軸範囲と目盛り位置を固...
xlimやXTickを指定した後にdatetickを行わないとややこしいこ...
これで下図のように日付表示にできる.~
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
**datetickを使わずに目盛ラベルを表示し,改行する[#y23a0e0a]
目盛り間隔やラベルのフォーマットによっては目盛ラベルが前...
datetickではこれに対応しきれないため,LaTeXの書式を使って...
#codeprettify(lang-matlab){{
% 目盛位置の設定
tick = datenum(date_vec(1:6:end,:));
% 目盛ラベルの設定,LaTeX書式
tlabel = cell(1,length(tick));
for k = 1:length(tick)
tlabel{k} = ['\begin{tabular}{c}',datestr(tick(k),'yyyy...
tlabel{k} = strrep(tlabel{k},' ','\\');
end
% 反映させる
set(gca,'XTick',tick,'XTickLabels',tlabel,'TickLabelInter...
}}
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
***参考 [#fa021d86]
-[[stackoverflow>https://stackoverflow.com/questions/1856...
End:
*目盛を日付・時刻で表示 & ラベルの改行 [#j4033528]
**はじめに [#se86c9a7]
datetime型をplot等の軸に採用すると,自動で軸目盛りのラベ...
ただし目盛り位置やラベルのフォーマットを自由に編集したい...
下記のようにサンプルデータを作成した.~
#codeprettify(lang-matlab){{
% サンプル日時の行列を作成
% 1990/06/01 12:00 〜 1992/06/01 12:00
% 毎月1日の12:00の25要素
Y = [repmat(1990,[1 7]) repmat(1991,[1 12]) repmat(1992,[...
M = [6:12 1:12 1:6];
D = ones(1,25);
h = 12*ones(1,25);
m = zeros(1,25);
s = zeros(1,25);
date_vec = vertcat(Y,M,D,h,m,s)';
}}
#codeprettify(lang-matlab){{
% 25個の日時をdatetime型, シリアル値に変換
t = datetime(date_vec);
tn = datenum(date_vec);
% plot用に適当なデータを作成
A = peaks(25);
y = A(:,10);
}}
**datetick [#gb99c508]
シリアル値でplotすると,最初はシリアル値のまま.~
datetickで,シリアル値の軸を日付に設定できる.
#codeprettify(lang-matlab){{
% plot
figure
plot(tn,y,'bo-')
grid on
% 目盛位置の設定
tick = datenum(date_vec(1:6:end,:));
set(gca,'XTick',tick)
% datetickでフォーマット指定
datetick('x','mm/dd HH:MM','keeplimits','keepticks')
}}
keeplimitsとkeepticksで実行する前の軸範囲と目盛り位置を固...
xlimやXTickを指定した後にdatetickを行わないとややこしいこ...
これで下図のように日付表示にできる.~
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
**datetickを使わずに目盛ラベルを表示し,改行する[#y23a0e0a]
目盛り間隔やラベルのフォーマットによっては目盛ラベルが前...
datetickではこれに対応しきれないため,LaTeXの書式を使って...
#codeprettify(lang-matlab){{
% 目盛位置の設定
tick = datenum(date_vec(1:6:end,:));
% 目盛ラベルの設定,LaTeX書式
tlabel = cell(1,length(tick));
for k = 1:length(tick)
tlabel{k} = ['\begin{tabular}{c}',datestr(tick(k),'yyyy...
tlabel{k} = strrep(tlabel{k},' ','\\');
end
% 反映させる
set(gca,'XTick',tick,'XTickLabels',tlabel,'TickLabelInter...
}}
&ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/i...
***参考 [#fa021d86]
-[[stackoverflow>https://stackoverflow.com/questions/1856...
Page:
Edit with a page name which already exists