カラーマップ,カラーバーを対数軸にする

Untitled

はじめに

濃度やスペクトルなど指数関数的な減少・増加のある分布に対しては,対数軸を使って描画をしたい.
という動機でやってみた

Linear scale

下の図のような分布は,普通に描いてもわかりにくい.
% サンプルデータの作成
[X, Y] = meshgrid(-5.0:0.2:5.0);
Z = 1000*exp(-2*sqrt(X.^2+Y.^2));
% 2次元分布Zの描画 3D
figure
surf(X,Y,Z);
% 2次元分布Zの描画
figure
pcolor(X,Y,Z);
axis equal tight
colorbar
caxis([0 1000])

Logarithmic scale

Z に log をかけて colorbar のラベルを調整することで,対数スケールでの着色が可能.
% colorbar の軸目盛りの事前設定
ticks = 0.0:0.5:3.0;
tlabels = [repmat('10^{',[length(ticks),1]),num2str(ticks', '%-.1f'),repmat('}',[length(ticks),1])];
% 2次元分布Zの描画 (log scale)
figure
pcolor(X,Y,log10(Z));
cb = colorbar;
caxis([min(ticks) max(ticks)])
set(cb,'Ticks',ticks,'TickLabels',tlabels)

colobar の目盛り設定は値の範囲等に応じて変更する必要がある.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2019-12-24 (Tue) 09:36:14 (198d)