如何在Matlab中制作图像图的颜色条以获取离散值而又不给部分数据颜色

问题描述

我正在用matlab中的图像绘图绘制具有降雨强度的矩阵。

我希望颜色栏显示0-10、10-20 ...至90-10的不同颜色。

我尝试使用函数surf(10)来获得10种离散颜色,但随后仅显示10种值。

这是我使用的代码

image(pr20020719T0730)
cmap = jet(10);
colormap(cmap);
colorbar

这是代码后图像的外观

解决方法

imshow不同,image函数将图像对象的CDataMapping属性设置为'direct'。阅读MATLAB docs了解更多详细信息。这是如何影响结果的:

% create 256x256-matrix with discrete,ascending column values
X = repmat(linspace(0,100,256),256,1);
% first subplot
subplot 121
image(X)
colorbar
% second subplot
subplot 122
image(X,'CDataMapping','scaled')
colorbar

% set colormalt to "jet"
cmap = jet(10);
colormap(cmap)

enter image description here