define a sequential discrete color map with first color white.
Show older comments
Hi,
I need to define a color map with 8 different sequential discrete colors like below. But, the first colot should be while. How can I define a color map and include in the MATLAB code below.?
Any help is highly appreciated.
Thanks in advance.

figure;
pcolor(lon,lat,t2);
shading interp
colorbar
Accepted Answer
More Answers (2)
Chad Greene
on 16 Apr 2015
Edited: Chad Greene
on 16 Apr 2015
The colormap you uploaded in your original question looks a lot like a Cynthia Brewer colormap, which Stephen Cobeldick has made into a nice little function called brewermap. You'll notice the first value in that colormap you uploaded is not pure white. Here's how you can create the 8-level brewer map with the brewermap function, and if you want to force the first value to white, you can do that too.
pcolor(3.5*abs(peaks(1024)))
shading interp
% Create colormap:
map = brewermap(8,'GnBu');
map(1,:) = [1 1 1]; % optionally force first color to white
colormap(map)
cb = colorbar('location','south');
caxis([0 20]) % sets colorbar limits
set(cb,'xtick',[])
% another colorbar:
cb2 = colorbar('location','northoutside');
The reason your set(hcb,'YTick',[]) did not work is because you followed it by calling a new colorbar. And you can set the colorbar limits from 0 to 20 by caxis([0 20]). For colorbar location you may alternatively want 'southoutside'.

Makarand
on 27 Apr 2018
0 votes
if you have unequal intervals then you can check Recolor_pcolor
Categories
Find more on Blue in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!