如何在Matlab中设置子图的位置

时间:2018-06-19 12:46:13

标签: matlab plot

我尝试一个接一个地设置此子图,但是无法更改其位置。我该怎么办?

figure
subplot(10,1,1,'Position',[0.5,0.69,1,0.1]);plot(B{1, 1}(:,[1,3]),'Color', 
[0,0,0]);legend('Black');
subplot(10,1,2,'Position',[0.5,0.37,1,0.1]);plot(B{2, 1}(:,[1,3]),'Color', 
[1,0,0]);legend('Red');
subplot(10,1,3,'Position',[0,0,1,0.1]);plot(B{3, 1}(:,[1,3]),'Color', 
[0,1,0]);legend('Lime');
subplot(10,1,4,'Position',[0,0,1,0.1]);plot(B{4, 1}(:,[1,3]),'Color', 
[0,0,1]);legend('Blue');
subplot(10,1,5,'Position',[0,0,1,0.1]);plot(B{5, 1}(:,[1,3]),'Color', 
[0,1,1]);legend('Cyan');
subplot(10,1,6,'Position',[0,0,1,0.1]);plot(B{6, 1}(:,[1,3]),'Color', 
[1,0,1]);legend('Magenta');
subplot(10,1,7,'Position',[0,0,1,0.1]);plot(B{7, 1}(:,[1,3]),'Color', 
[0.5,0.5,0.5]);legend('Gray');
subplot(10,1,8,'Position',[0,0,1,0.1]);plot(B{8, 1}(:,[1,3]),'Color', 
[0.5,0,0]);legend('Maroon');
subplot(10,1,9,'Position',[0,0,1,0.1]);plot(B{9, 1}(:,[1,3]),'Color', 
[0.5,0,0.5]);legend('Purple');
subplot(10,1,10,'Position',[0,0,1,0.1]);plot(B{10, 1}(:,[1,3]),'Color', 
[0,0.5,0.5]);legend('Teal');

2 个答案:

答案 0 :(得分:3)

好吧,只要您正确地进行操作,就可以更改位置。

manual of the subplot中所述,您可以指定位置:

  • 自动

使用

subplot(m,n,p)

使用m位置的n x p网格图。这是您部分使用的东西。

  • 手动

使用

subplot('Position',[left bottom width height])      

这是您遇到的问题。如手册中所述,如果重叠,则会删除下图。 在您的情况下,有些职位是重叠的。
另请注意,位置始终是规范化的,因此left=0.5width=1表示您在x方向上裁剪了一半的图形。使用手动定位时要注意。
正如Cris Luengo's answer所指出的,您可以直接使用axis。其中有一些优点和缺点。但是axis中的单位也已标准化。因此,知道您在使用什么。

当您同时使用(手动和自动)设置时,我不清楚哪个将具有首选项,因为当我测试部分代码时,我得到了不同的输出。

答案 1 :(得分:2)

如果要手动设置其位置,只需直接创建轴对象:

figure
axes('Position',[0.5,0.69,1,0.1]);plot(B{1, 1}(:,[1,3]),'Color', 
[0,0,0]);legend('Black');
axes('Position',[0.5,0.37,1,0.1]);plot(B{2, 1}(:,[1,3]),'Color', 
[1,0,0]);legend('Red');

Documentation to axes.

subplot的好处是它可以为您放置轴。它没有其他目的。