子图是如何工作的,在MATLAB中子图(121)和子图(1,2,1)有什么区别?

我有点不清楚subplot工作原理。 具体来说,MATLAB中的subplot(121)subplot(1,2,1)什么区别? 我试图search的subplot档案的文件,但我似乎无法find我在找什么。

长话短说,没有什么区别。 subplot工作原理如下:

 subplot(m,n,p); %//or subplot(mnp); 

你有三个在subplot内使用的数字。 subplot将多个数字放在同一个窗口中。 您可以将图放置在一个mxn网格中,其中m包含行数, n包含图中的列数。 p决定你想把你的阴谋放在网格的哪里 。 数字p1增加到mxn ,并且图从左到右,从上到下。

在这种情况下,当你做subplot(1,2,1);subplot(121); ,你想有一行列的数字。 最后一个数字p=1表示您希望将图表放在最左边一列。 当你做subplot(1,2,2);subplot(122); ,这是当p=2 ,你希望将该图放在最右边的列中。

你如何使用subplot是以下面的方式:

  1. 首先确定在这个窗口内要绘制多less个行和列(即mn )。
  2. 产生一个空白的figure窗口
  3. 对于您想创build的每个情节
    • 调用subplot并select要显示图的位置(s)。
    • 编写必要的代码来创build你的情节,就像你只是一个占用一个窗口的情节。
    • 绘制您的数据
  4. 重复步骤#3为我们有的每个情节,直到我们用完subplot槽。

这是一个说明性的例子。 让我们在同一个窗口中创build一个有列的数字的窗口。 因此:

 figure; rng(10); %// Set seed for reproducibility subplot(2,3,1); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('First plot'); subplot(2,3,2); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Second plot'); subplot(2,3,3); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Third plot'); subplot(2,3,4); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Fourth plot'); subplot(2,3,5); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Fifth plot'); subplot(2,3,6); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Sixth plot'); 

上面的代码所做的是,我们为xy对生成随机点集合,每个点集合都是100 x 1 ,我们将它们绘制在整个窗口的多个位置。 注意subplot的最后一个参数线性增加,而前两个参数保持不变开始绘图之前 ,您必须确保您知道在整个窗口中需要多less个数字。 上面描述的代码如下所示:

在这里输入图像描述

您也可以为p指定一个的向量 。 但是,如果你这样做,你必须这样调用subplotsubplot(m,n,p); 。 如果p是一个单一的数字 ,那么subplot(m,n,p);subplot(mnp)将工作。

如果你指定p是一个向量 ,这将会做的是,你制作的一个图在同一个graphics窗口中占据多个空间/插槽。 举个例子,如果你这样做: subplot(2,3,1:3); ,这将占用一个阴谋, 占据你的数字的整个第一行 。 然后,您可以在插槽4,5和6中发出更多的图表。换句话说:

 figure; rng(10); %// Set seed for reproducibility subplot(2,3,1:3); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('First plot'); subplot(2,3,4:5); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Second plot'); subplot(2,3,6); x = rand(100,1); y = rand(100,1); plot(x,y,'b.'); title('Third plot'); 

该图看起来像:

在这里输入图像描述

正如你所看到的,我们已经使用subplot(2,3,1:3);占据了第一行 subplot(2,3,1:3); 与第一个阴谋。 第二个小区使用subplot(2,3,4:5);占用时隙p=4,p=5 subplot(2,3,4:5); 。 这占据了第二行,第一和第二列。 最后我们的最后一个小区占用第二行,第三列使用subplot(2,3,6); 。 请记住,插槽从左到右,从上到下, p不仅可以是单个数字,也可以是vector。 如果你想占用前两行和两列 ,你会做subplot(2,3,[1 2 4 5]); 现在,如果你想占据整个最右边的列,你可以做subplot(2,3,[3 6]); ,或者如果你只是想在最右边的列最上面的位置,你可以做subplot(2,3,3);subplot(233); ,那么如果你想解决最后一列和右下angular的最后一个位置,你可以做subplot(2,3,6);subplot(236);

我想确保你记住的最后一件事是, 你决定展示你的情节之前 ,你需要确保你打电话给你。 一旦你完成,切换到下一个插槽,并继续工作。

希望这可以帮助! 祝你好运!