我已定义了自定义的colormap
,然后使用它colorbar
,如图所示。 caxis
的最小值和最大值设置为0和16,但问题是我想在颜色条中有浮点,例如
[ 0 : 0.3 )=dark blue, [ 0.3 : 0.6 )=blue, [0.6 : 0.9)=green
等等而不只是整数,但我不能。请注意“[”和“)”对我来说很重要。
请帮忙。
P.S:渐变效果对我来说并不重要。
这是代码
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 :(得分:0)
我找到了答案......解决方案就在这里......我想要一个0到16之间的颜色条,步骤0.3介于0和2之间,步骤0.5介于2和16之间。示例如下:
[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个点,我应该通过定义map = zeros(35 ,3 )
为这些点分配35种颜色。地图中的数字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 ......至少它有效。