我定义了一个自定义的colormap
,然后使用它colorbar
,如图所示。的min和maxcaxis
设置为0和16,但是问题是我想在颜色栏中使用浮点,例如
[ 0 : 0.3 )=dark blue, [ 0.3 : 0.6 )=blue, [0.6 : 0.9)=green
等等,不仅是整数,但我不能。请注意对我很重要的“ [”和“)”。
请帮忙。
PS:渐变效果对我来说并不重要。
这是代码
caxis([0 16]);
map = zeros(16 , 3);
map(1:1,:) = [0, 0 ,143]./255;
map(2:2,:) = [0, 0 ,239]./255;
map(3:3,:) = [0, 175 ,255]./255;
map(4:4,:) = [16, 255 ,239]./255;
map(5:5,:) = [112, 255 ,143]./255;
map(6:10,:) = [207, 255 ,48 ; 207, 255 ,48;207, 255 ,48;207, 255 ,48;207, 255 ,48]./255;
map(11:12,:) = [255, 207 ,0 ; 255, 207 ,0 ]./255;
map(13:16,:) = [255, 16 ,0 ; 255, 16 ,0;255, 16 ,0;255, 16 ,0]./255;
colormap(map);
set(get(colorbar('peer',gca),'ylabel'),'String','BGA PC(RFU)');
这是图:
我找到了答案...解决方案在这里..我希望有一个介于0和16之间的色条,其中第0.3步介于0和2之间,第0.5步介于2和16之间.sample在这里:
[0 0.3 0.6 0.9 ... 1.8 2.3 2.8 ... 15.8]
因此,为此,我定义了矩阵范围,如下所示:
range1 = (0:0.3:2);
range2 = (2.3 : 0.5 : 16);
range = [range1,range2]';
矩阵范围的大小是(35,1),所以有35个点,我应该通过定义将35种颜色分配给这些点map = zeros(35 ,3 )
。地图中的3号代表RGB
。之后,我将颜色分配给地图点,如下所示(这里仅以其中的两个为例)
map(1,:) = [2, 2 ,51]./255;
map(2,:) = [3, 3 ,88]./255;
这是完整的代码:
contourf(points,depths,FRU01102013);
set(gca, 'XTick', points(1) : points(3), 'XTickLabel',{'LSB1','LSB2-1_BLOOM','LSB2'});
ylabel('Depth(m)');
xlabel('Points');
title('Date: 03.10.2013');
caxis([0 15.8]);
%------------------------
map = zeros(35 , 3);
map(1,:) = [2, 2 ,51]./255;
map(2,:) = [3, 3 ,88]./255;
.
.
.
map(35,:) = [82,3,3]./255;
colormap(map);
%----
range1 = (0:0.3:2);
range2 = (2.3 : 0.5 : 16);
range = [range1,range2]';
cbh = colorbar('peer',gca);
set(cbh,'ytick',range);
set(get(cbh, 'ylabel') ,'String','BGA PC(RFU)');
如下图:
我知道分配35种颜色很困难,甚至可能很愚蠢,但是我对matlab并不熟悉...至少可以用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句