PColor麻烦 - 如何为特定范围设置特定颜色

时间:2016-11-03 14:02:12

标签: matlab matlab-figure colorbar

我使用pcolor绘制矩阵X,其尺寸为(286,64),值范围为0到20.如何将特定颜色设置为特定范围,即0-0.5,白色; 0.5-1.0,红色; 1.0-2.0,橙色,...... 15-20,蓝色?每次我尝试使用轮廓和pcolor时,颜色条范围都不会与刻度线对齐,并且刻度线从绘图变为绘图,即使我在代码中将它们硬连线。

感谢?

1 个答案:

答案 0 :(得分:0)

要将颜色指定为不等距离的范围,您可以手动编辑颜色图,或将矩阵转换为范围矩阵的索引,然后定义自己的颜色图。这是一个简单的例子:

X = randi([0 20],28,64);
C = zeros(size(X)); % the ranges matrix
color_shift = [0 5 11 12]; % the values where the color changes
for k = 1:numel(color_shift)
    C(X>color_shift(k)) = k;
end
% your colormap
cmap = [0.8 0.2 0 % 0 - 5
        1 0.5 0 % 5 - 11
        0.5 0 0.5 % 11 - 12
        0.3 0.3 1]; % 12 - 20
pcolor(C)
colormap(cmap)
ch = colorbar;
% setting the ticks on the colorbar:
ch.Ticks =  0:numel(color_shift);
ch.TickLabels = [color_shift max(X(:))];

你会得到这样的东西: custom colormap