子图是如何工作的,在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
决定你想把你的阴谋放在网格的哪里 。 数字p
从1
增加到mxn
,并且图从左到右,从上到下。
在这种情况下,当你做subplot(1,2,1);
或subplot(121);
,你想有一行两列的数字。 最后一个数字p=1
表示您希望将图表放在最左边一列。 当你做subplot(1,2,2);
或subplot(122);
,这是当p=2
,你希望将该图放在最右边的列中。
你如何使用subplot
是以下面的方式:
- 首先确定在这个窗口内要绘制多less个行和列(即
m
和n
)。 - 产生一个空白的
figure
窗口 - 对于您想创build的每个情节
- 调用
subplot
并select要显示图的位置(s)。 - 编写必要的代码来创build你的情节,就像你只是一个占用一个窗口的情节。
- 绘制您的数据
- 调用
- 重复步骤#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');
上面的代码所做的是,我们为x
和y
对生成随机点集合,每个点集合都是100 x 1
,我们将它们绘制在整个窗口的多个位置。 注意subplot
的最后一个参数线性增加,而前两个参数保持不变 。 在开始绘图之前 ,您必须确保您知道在整个窗口中需要多less个数字。 上面描述的代码如下所示:
您也可以为p
指定一个点的向量 。 但是,如果你这样做,你必须这样调用subplot
: subplot(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);
我想确保你记住的最后一件事是, 在你决定展示你的情节之前 ,你需要确保你打电话给你。 一旦你完成,切换到下一个插槽,并继续工作。
希望这可以帮助! 祝你好运!