2012-11-30 54 views
2

我創建瞭如下圖所示:定義彩條的尺寸MATLAB

Naming = {'Name1','Name2','Name3','Name4','Name5','Name6'}; 

for i = 1:length(Naming); 
    dat = 1+(30-1).*rand(365,5); 
    time = datenum('2009-01-01','yyyy-mm-dd'):datenum('2009-12-31',... 
     'yyyy-mm-dd'); 
    dept = 1:5; 

    figure(1); 
    ax = subplot(3,2,i); 
    contourf(time,dept,dat',1:5:30); 
    shading flat; 
    title(Naming{i}); 
    datetick('x','mmm','keepticks'); 
    AX{i} = get(ax,'position'); 
end 
h = axes('Position',[0 0 1 1],'Visible','off'); 
c = colorbar; 
x = get(c,'Position'); 
x(1) = AX{end}(1)+AX{end}(3)+0.02; 
x(2) = AX{end}(2); 
x(3) = 0.02; 
x(4) = AX{1}(2)+AX{1}(4); 
set(c,'Position',x); 

是否有定義顏色條的寬度和高度的更好的方法?此時,彩條位於正確的位置,但高度太大。

回答

0

我認爲你必須要減去底部的y軸位置:

x(4) = AX{1}(2)+AX{1}(4)-AX{6}(2); 

爲一個更好的方法:你這樣做,我認爲非常好......你覺得呢會更好」?

1

MathWorks提供solution用於指定顏色條的寬度,這對我而言效果很好。

這裏是鏈接的網站,那裏的彩條的寬度設置爲0.03的例子:

pcolor(peaks); 
c=colorbar; 
x1=get(gca,'position'); 
x=get(c,'Position'); 
x(3)=0.03; 
set(c,'Position',x) 
set(gca,'position',x1) 
+0

至少在我的情況,這使得如果你渲染了幾次情節萎縮。 – JulianHzg