📜  clf subplot matlab (1)

📅  最后修改于: 2023-12-03 14:59:56.520000             🧑  作者: Mango

在Matlab中通过subplot进行多图布局

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

运行上述代码,将会生成如下图所示的绘图窗口:

subplot_demo.png

细节说明
  1. 在绘制子图之前,先指定当前的图形窗口,可以使用figure函数来创建一个新的绘图窗口或选择现有的窗口。例如,若要选择第2个窗口进行绘制,可以使用以下命令:

    figure(2)
    
  2. 在绘制完所有子图后,可以使用suptitle函数来添加一个总标题,例如:

    suptitle('My Subplot Demo')
    

    执行完毕后,绘图窗口顶部将会显示"My Subplot Demo"字样。

  3. 若某个子图已经存在,可以使用指定该子图画布的方法进行绘制。例如,下面的例子中,子图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);
    

    运行上述代码,将会生成如下图所示的绘图窗口:

    subplot_demo2.png

    在该例子中,子图1和子图4都绘制了y=x^2的图形,但是它们所使用的画布不同。其中,子图1的画布是整个绘图窗口,而子图4的画布则使用了较小的画布,因此y=x^2的图形被缩小了。