2014-12-02 30 views
3

我有一個帶alpha圖的colorplot(來自imagesc)。我希望顏色條反映alpha(注意colormaps下面的圖像是相同的)。我在網上找到解決方案,但似乎沒有在R2014b中工作。在MATLAB中設置顏色條的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.

詹姆斯

回答

0

在預R2014b MATLAB,所述colorbar是本身包含了可以設置阿爾法圖像的軸:

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

而不是gcf,使用各個子圖的手柄。

或保存它的手柄,當你使它:

hb = colorbar; 

從R2014b上的彩條是使用新的句柄圖形系統,那裏不再是一個孩子的圖像修改創建。 colorbar內部創建colorbarHGUsingMATLABClasses,這是一個模糊的.p文件,所以它不清楚它是如何構造的。

+0

我試過這個,它什麼也沒做。這是與R2014b? – James 2014-12-02 21:50:18

+0

@詹姆斯是,R2014b。我會做一個更完整的例子。也許我遺漏了一個細節。 – chappjc 2014-12-02 21:51:43

+0

@James Yikes!在R2014b上,目前還不清楚如何去做。對不起,我誤解了這個問題。 – chappjc 2014-12-02 22:09:35

0

您可以在顏色條頂部添加帶有alpha的文本框。這適用於更高版本的MATLAB。

cb=colorbar 

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