MATLAB中较大的子块

MATLAB中较大的子块,matlab,Matlab,我有6个Y变量,都有相同的X变量(时间) 我想在一列中有6个绘图,但当我使用子绘图(6,1,1)时,绘图在垂直方向上变得很小 我试过使用: x=0:360; y1=sind(x); y2=cosd(x); h=subplot(6,1,1); plot(x,y1); d = get(h,'Position'); d(4)=d(4)*3; set(h,'Position',d); h=subplot(6,1,2); plot(x,y2); d = get(h,'Position'); d(4)=

我有6个Y变量,都有相同的X变量(时间)

我想在一列中有6个绘图,但当我使用
子绘图(6,1,1)
时,绘图在垂直方向上变得很小

我试过使用:

x=0:360;
y1=sind(x);
y2=cosd(x);

h=subplot(6,1,1);
plot(x,y1);
d = get(h,'Position');
d(4)=d(4)*3;
set(h,'Position',d);

h=subplot(6,1,2);
plot(x,y2);
d = get(h,'Position');
d(4)=d(4)*3;
set(h,'Position',d);

....(For 6 subplots)
希望每个子地块在垂直方向上都会大3倍,这样可以工作,但子地块之间的间距不会更新,因此子地块开始重叠:

我怎样才能使子地块在垂直方向上更大,但间距相等,就像我改变每个子地块的高度之前一样


另外,如果你能帮我隐藏xTick标签(数字),但保留所有子地块上的刻度(线),但最底部的一个,这也将是一个很大的帮助。谢谢

Matlab很难轻松绘制此类图形。你要么手工完成,要么在网络上搜索,看看是否有人已经实现了更好的功能

本文讨论了一个脚本,它似乎可以实现您想要的功能

要隐藏记号标签,请执行以下操作:

set(gca, 'XTickLabel', '')
如果您想构建自己的子地块,您可以使用类似这样的东西(测试得不是很好):

mySubplot(6,2)的结果:


您可以自己使用间距。

感谢XTickLabel的帮助,我是否可以使用set(gca,Position…)功能来执行此操作?看起来我快到了,我只需要在图形之间加上一些间距是的,你可以手动设置位置,你只需要计算高度的正确值:)。我添加了一个例子,说明你如何自己做。这些例子很好,但有一个小问题,当我将h0改为例如1时,顶部的绘图会从屏幕上移开(请参见),所以不要这样做!请注意,您应该保持
y0+h0这可能有效-?必须为此正确设置数据。
function ax = mySubplot(nrow, ncol)
% returns a matrix of axis handles
% to plot in the second subplot, you would use plot(ax(1,2), x, y)

% standard x, y, dx, dy for subplot(111)
x0 = 0.1300;
y0 = 0.1100;
w0 = 0.7750;
h0 = 0.8150;
w = w0 / ncol;
h = h0 / nrow;
figure()

ax = nan(nrow, ncol);
for irow = 1:nrow
    for icol = 1:ncol
        ax(irow, icol) = axes('position', ...
            [x0 + (icol - 1) * w, y0 + (nrow - irow) * h, 0.9*w, 0.9*h]);
    end
end