如何调整子图的高度?

时间:2015-11-17 09:15:52

标签: matlab subplot

我有两个子图,我需要让第一个子图的大小比第二个子图大,因为第二个子图是一个触发信号。我已经调整了大小并缩小了子图之间的差距。但问题在于,当我尝试增加第一个子图的高度时,它就会超出图中。我尝试了很多,但无法找到解决方案。以下是代码:

figure

x = (Messwerte.mste_w.value);
x = x';
%calculates the integral for all the values
t = cumtrapz(x);
subplot(9,1,1);
%plotting mste_w and its integral together
[ax,h1,h2] = plotyy(Messwerte.(Messwerte.mste_w.time),...
Messwerte.mste_w.value,Messwerte.(Messwerte.mste_w.time),t,@area,@plot);

set(h1, 'FaceColor', 'g','LineWidth', 2);
set(h2, 'LineWidth', 2);
set(gca,'ButtonDownFcn','selectmoveresize');
set(gcf,'WindowButtonDownFcn','selectmoveresize');
A = get(gca,'position');
A_diff = 1.5*A(4);             
A(4) = A(4) + A_diff;
A(2) = A(2)-0.15*A(2) ;
set(gca,'position',A);
%set(ax(1),'xtick',[0:500:2000])
set(ax(1),'ylim',[0 7],'ytick',[0:1:7])
%set(ax(2),'xtick',[0:500:2000])
set(ax(2),'ylim',[0 70000],'ytick',[0:10000:70000])
axes(ax(1)); ylabel('mste-w','color','k');
axes(ax(2)); ylabel('Spülvolumen in miliLiter');
%xlabel('time[s]')
set(ax(1),'YColor', 'k');
set(ax(2),'YColor', 'k');
grid on
% title('FTP75 AKB beladen')


subplot(9,1,2);
plot(Messwerte.(Messwerte.B_te.time),Messwerte.B_te.value);
A = get(gca,'position');

% A(1,4) = 2*A(1,4) / 3 ;             % reduce the height by one third
% A(1,2) = A(1,2) - 0.1*A(1,4);         % change the vertical position

A_diff = A(4)/3;
A(4)=A(4)-A_diff;
A(2)=A(2)-0.5*A_diff;
set(gca,'position',A);
area(Messwerte.(Messwerte.B_te.time),Messwerte.B_te.value,...
    'FaceColor','g');
set(gca,'xtick',[0:500:2000]);
set(gca,'ytick',[]);
ylabel('B-te');

1 个答案:

答案 0 :(得分:1)

所以,据我所知,你有两个子图,一起占据图的高度的2/9,你想将第二个的大小减小到默认值的2/3,并增加默认值的第一个到第4/3的大小。

所以我们希望第一个子图是(4/3)x(1/9)= 4/27的高度,第二个子图是(2/3)x(1/9)= 2/27的高度。最简单的方法是:

onResume()