我有一张带有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
詹姆斯
答案 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]);