📅  最后修改于: 2023-12-03 14:59:56.520000             🧑  作者: Mango
在Matlab中,subplot函数可以用来进行多图布局。可以将一个大的绘图窗口分成若干小块,每个小块分别绘制自己的图像。
subplot函数的语法格式如下:
subplot(m, n, p)
其中,m和n表示绘图窗口被分成的行数和列数,p表示绘制的子图的位置,从左上角开始编号,从左到右,从上到下。例如,m=2,n=3,p=4表示绘制一个2行3列的布局图,其中所绘制的子图的位置是在第2行第1列。
假设我们要在一个2行2列的绘图窗口中绘制4幅子图,代码如下:
x = 0:pi/100:2*pi;
subplot(2, 2, 1);
y1 = sin(x);
plot(x, y1);
subplot(2, 2, 2);
y2 = cos(x);
plot(x, y2);
subplot(2, 2, 3);
y3 = tan(x);
plot(x, y3);
subplot(2, 2, 4);
y4 = cot(x);
plot(x, y4);
运行上述代码,将会生成如下图所示的绘图窗口:
在绘制子图之前,先指定当前的图形窗口,可以使用figure函数来创建一个新的绘图窗口或选择现有的窗口。例如,若要选择第2个窗口进行绘制,可以使用以下命令:
figure(2)
在绘制完所有子图后,可以使用suptitle函数来添加一个总标题,例如:
suptitle('My Subplot Demo')
执行完毕后,绘图窗口顶部将会显示"My Subplot Demo"字样。
若某个子图已经存在,可以使用指定该子图画布的方法进行绘制。例如,下面的例子中,子图1和子图4使用了同一幅画布:
x = 0:pi/100:2*pi;
figure(1);
subplot(2, 2, 1);
y1 = sin(x);
plot(x, y1);
h1 = axes('position',[0.55 0.55 0.35 0.35]);
plot(h1,x,y1.^2)
subplot(2, 2, 2);
y2 = cos(x);
plot(x, y2);
subplot(2, 2, 3);
y3 = tan(x);
plot(x, y3);
h2 = axes('position',[0.1 0.1 0.35 0.35]);
plot(h2,x,y3.*y3)
axes('position',[0.55 0.1 0.35 0.35]);
y4 = cot(x);
plot(x, y4);
运行上述代码,将会生成如下图所示的绘图窗口:
在该例子中,子图1和子图4都绘制了y=x^2的图形,但是它们所使用的画布不同。其中,子图1的画布是整个绘图窗口,而子图4的画布则使用了较小的画布,因此y=x^2的图形被缩小了。