カラーマップの軸の表示を変更するには?

27 views (last 30 days)
nknknknk
nknknknk on 9 Oct 2017
Edited: mizuki on 10 Oct 2017
こちらの質問させていただいた者です。 →  カラーマップ表示するには
おかげさまでカラーマップ表示ができましたが、軸表示の変更方法を教えていただきたいです。
上図は、 1分毎の観測記録が350個(18:00~23:59)(観測データが取れなかった部分10個分抜け落ちています)並べてカラーマップにしたものです。
x軸にデータの通し番号で表記されていますが、 1→18:00,2→18:01,・・・ という風に観測時間の表記に変更したいです。
ただ、観測できない時(19:03は観測データ無し等)があるので、データファイルから観測時間を読み取り、軸に表示したいです。
また、y軸に関して、 100→0,101→15,→102→30,・・・500→6000 という表記に変更したいです。
どのような方法があるでしょうか。 初歩的な質問でしたら恐縮ですがご確認よろしくお願いします。

Accepted Answer

mizuki
mizuki on 10 Oct 2017
Edited: mizuki on 10 Oct 2017
ラベルの部分を変更する方法はコードベースとGUIベースの2通りの方法があります。
1. コードベースで変更する方法
xxTickLabel というプロパティを変更します。xx部分はX/Y/Z軸 によって X/Y/Z が入ります。
このプロパティは軸 Axes のプロパティとして含まれています。 軸のプロパティを取得するには、画像を表示後に
h_ax = gca;
あるいは CONTOURF (や他のグラフ) の上の階層にいきます。
[C,h] = contourf(X,Y,Z,'LineStyle','none');
h.Parent.XTickLabel
XTickLabel と YTickLabel を変更して以下のようなグラフではいかがでしょうか。(18:01 は欠損値で NaN になっています)
n = 10;
X = linspace(0,10,n);
Y = linspace(0,1,n);
Z = peaks(n);
Z(:,3) = NaN;
[C,h] = contourf(X,Y,Z,'LineStyle','none');
colorbar;
datestr = (datetime('18:00', 'InputFormat', 'HH:mm') : minutes(1) : datetime('18:10', 'InputFormat', 'HH:mm'))';
datestr.Format = 'HH:mm';
str = string(datestr);
h.Parent.XTickLabel = str;
h.Parent.XTickLabelRotation = 45;
h.Parent.YTickLabel = [0:15:75];
2. GUIベースで変更する方法
プロパティエディタを使用して、図のプロパティを変更します。変更するプロパティは1と同じです。手順については以下の図の1-3に従ってください。

More Answers (0)

Community Treasure Hunt

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

Start Hunting!