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

How to define transparent element in colormap

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

我需要这个的原因是我的 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);