目盛りのフォーマットを揃える

plotboxの軸目盛り

例えば

figure;plot(peaks./100);

と実行すると,下図のようにy軸目盛り数値の桁数がバラバラ.

OrgYTick.png

整数なら整数,小数点なら第○位までと全てを統一したい.
上図のY軸を少数第2位までにそろえるとすれば,

format = '%0.2f';
ax = gca; % axisハンドル取得
ytick0 = ax.YTick; % 現在の目盛り位置
ytlabel = cell(1,length(ytick0));
for k = 1:length(ytick0)
  ytlabel{k} = num2str(ytick0(k),format); % 目盛りラベルの表記format修正
end
ax.YTick = ytick0;
ax.YTickLabel = ytlabel;

となり,下図が生成される.

ArrangedYTick.png

他の軸の場合もax.XTickとかにするだけ.
ただし表示する目盛り位置(数値)を指定してしまっているので,事前にサイズや軸範囲,フォントなど一通りの体裁を修正し,最後にこの操作を行わないと不細工に.

colorbarの目盛り

colorbarの目盛りについてもほぼ同じ.

figure;pcolor(peaks./100);
caxis([-0.10 0.10])

を実行すると以下の通り.

Orgcbticks.png

上記と似たような処理で調整可能だが,colorbarの場合は
「Ytick」,「YTickLabel」でなく,
「Ticks」,「TickLabels」を使う.なかなかの紛らわしさ.
以下に目盛りの桁数を調整する例を示す.ついでに表示する目盛り位置も指定している.

format = '%0.2f';
cbrange = -0.10:0.05:0.10;
cb = colorbar;
caxis([min(cbrange) max(cbrange)])
cbtlabel = cell(1,length(cbrange));
for k = 1:length(cbrange)
  cbtlabel{k} = num2str(cbrange(k),format);
end
cb.Ticks = cbrange;
cb.TickLabels = cbtlabel;

これを実行すれば,

ArrangedCBTicks.png

と目盛り数値の桁も揃い,目盛り間隔も調整できる.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2017-07-20 (Thu) 04:49:47 (146d)