2

我创建下图:

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

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

4

2 回答 2

1

MathWorks 提供了一种用于指定颜色条宽度的解决方案,对我来说效果很好。

这是来自链接网站的示例,其中颜色栏的宽度设置为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)
于 2013-05-12T14:30:58.960 回答
0

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

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

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

于 2012-11-30T16:24:43.477 回答