在matlab中定义colorbar的尺寸

时间:2012-11-30 15:28:26

标签: matlab colorbar

我创建了下图:

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);

有没有更好的方法来定义颜色条的宽度和高度?目前,颜色条位于正确的位置,但高度太大。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

我认为你只需要减去底轴的y位置:

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

至于一个更好的方法:在我看来你做得很好......你认为什么会“更好”?