我创建了下图:
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 :(得分: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);
至于一个更好的方法:在我看来你做得很好......你认为什么会“更好”?