define a sequential discrete color map with first color white.

조회 수: 35 (최근 30일)
Damith
Damith 2015년 4월 15일
답변: Makarand 2018년 4월 27일
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

채택된 답변

Image Analyst
Image Analyst 2015년 4월 15일
Try this:
cmap = jet(20)
cmap = flipud(cmap(1:10,:));
cmap(1,:) = [1,1,1];
colormap(cmap);
colorbar
  댓글 수: 2
Damith
Damith 2015년 4월 15일
Thanks. I tried it. This is more close to what I wanted. See the modified code below and the figure it produced.
Few more things I need to accomplish.
1) I need to remove the tick marks from the colorbar but it has not removed even the last 3 lines in the code intended to do.
2) I need to graduate the colorbar from 0 (zero) to 20.
3) I need to know whether I can place the colorbar bottom of the figure?
Any help is appreciated to accomplish the above tasks.
Thanks.
figure;
pcolor(lon,lat,t2);
shading interp
cmap = jet(20);
cmap = flipud(cmap(1:10,:));
cmap(1,:) = [1,1,1];
colormap(cmap);
hcb=colorbar
set(hcb,'YTick',[])
colorbar
Image Analyst
Image Analyst 2015년 4월 16일
Do you know the RGB values for each of the 10 colors? If so, just assign them to each row of cmap.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Chad Greene
Chad Greene 2015년 4월 16일
편집: Chad Greene 2015년 4월 16일
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
Makarand 2018년 4월 27일
if you have unequal intervals then you can check Recolor_pcolor

카테고리

Help CenterFile Exchange에서 Blue에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by