MATLAB/colormapで値が0のところだけ白にしたい

MATLABでプロットするときに0のところだけ(例えば変化量)白でプロットして見えないようにしたいことがある.

0が一番小さいとき

colormapの一番上の行を白[1.0,1.0,1.0]にしてあげればよい.caxisでレンジを固定するのを忘れないように.

cmap = jet; % 種類はjet以外でもよい
cmap(1,:) = [1,1,1];
colormap(cmap)

 

 

(応用編)0が真ん中にあるとき(例:レンジが-1から+1)

colormapの真ん中の行を白にする.ただ,colormapの行数によって白にする行が変わるのでめんどくさいから,下のRed Blue Colormapを使うのも手.

 

 

赤白青のcolormapを使いたい(抜粋:colormapを自力できめたい – Nobuhito Mori

津波計算結果を見るときなど水位の変化を見やすくしたいとき(例えば,増加分は赤,減少分は青みたいにプロットしたい).

プロット例 (peaksをプロットしただけ)

 

 

 

(応用編)白赤 or 白青のcolormapを使いたい
% 白赤のcolormapを作る
cmap = redblue(ncolor); % ncolorはグラデーションをきつくしたいときは小さく,ゆるくしたいときは大きくする
cmap = cmap(end/2:end,:);
colormap(cmap)

% 白青のcolormapを作る
cmap = redblue(ncolor);
cmap = flipud(cmap(1:end/2,:));
colormap(cmap)

 

プロット例