在MATLAB R2014b中设置colorbar的alpha

时间:2014-12-02 02:23:38

标签: matlab alpha colorbar

我有一张带有alpha贴图的颜色图(来自imagesc)。我希望使用颜色条来反映alpha(请注意,在颜色图下面的图像中是相同的)。我在网上找到了解决方案,但似乎在R2014b中都没有。

代码在这里:

subplot(2,1,1)
A = imagesc(meshgrid(0:10,0:5));
alpha(A,1)
colorbar

subplot(2,1,2)
B = imagesc(meshgrid(0:10,0:5));
alpha(B,.7)
colorbar

Same colormap - different alphas.

詹姆斯

2 个答案:

答案 0 :(得分:0)

在R2014b之前的MATLAB中,colorbar本身就是一个包含图像的轴,您可以为其设置alpha:

hb = findobj(gcf,'Type','axes','Tag','Colorbar'); 
hi = findobj(hb,'Type','image');
alpha(hi,0.7)

使用各个子图的句柄代替gcf

或者在制作时保存其句柄:

hb = colorbar;

从R2014b开始,使用新的手柄图形系统创建颜色条,其中不再需要修改子图像。 colorbar在内部使用colorbarHGUsingMATLABClasses创建,这是一个混淆的.p文件,因此不清楚它是如何构建的。

答案 1 :(得分:0)

您可以在颜色条顶部添加带alpha的文本框。这适用于更高版本的MATLAB。

cb=colorbar

annotation('textbox',...
    cb.Position,...
    'FitBoxToText','off',...
    'FaceAlpha',0.5,...
    'EdgeColor',[1 1 1],...
    'BackgroundColor',[1 1 1]);