如何在colormap中定义透明元素

mag*_*gu_ 6 matlab matlab-figure colormap

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

我需要这个的原因是我有一个多层axes(由imagesc和生成plot).我知道我可以简单地先使用imagesc,然后plot我想在imagesc表示的非零值后面绘制线条.

要使用我使用的零颜色

jet = colormap('jet');
jet(1:2,:) = 1;
colormap(jet);
Run Code Online (Sandbox Code Playgroud)

现在我想让白色透明.

xen*_*ast 10

colormap不具备阿尔法第四个元素,它仅是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);
Run Code Online (Sandbox Code Playgroud)