カラーマップ,カラーバーを対数軸にする †はじめに濃度やスペクトルなど指数関数的な減少・増加のある分布に対しては,対数軸を使って描画をしたい. という動機でやってみた 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 scaleZ に 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 の目盛り設定は値の範囲等に応じて変更する必要がある. |