如何在颜色图中定义透明元素



我想在颜色图中定义一种透明颜色,该怎么做?

我需要这个的原因是我的axes中有多层(由imagescplot产生)。我知道我可以简单地先使用 imagesc 然后plot但我想在imagesc表示的非零值后面画线。

为了将零着色为白色,我使用

jet = colormap('jet');
jet(1:2,:) = 1;
colormap(jet);

现在我想让白色透明。

colormap没有

用于 alpha 的第四个元素,它只有 RGB,所以我做这种事情的方法是制作所需透明度层的蒙版 - 二进制或灰度将起作用 - 然后将其应用于图像。为此,您需要存储图像的句柄

% make random image
im = rand(100,100);
% make example alphamask
alphamask = im<0.3;
% store handle
hnd = imagesc(im);
% apply mask
set(hnd, 'AlphaData', alphamask);