为了绘制多个子图的MATLAB图,但是使用导出设置时无法将子图全屏铺满整个屏幕,因此本文对设置MATLAB子图位置进行了研究,达到如下的效果。
在这里插入图片描述
1.首先,明确其中每个变量的含义,从MATALB官网搜索subplot函数的使用,其中对于每个函数的定义要明确。
2.其次,明确自己需要使用的类型。
我们最常用的是
subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区 这是不需要定义位置,自己分成的图。
类似这种,自己定义子图个数,以及是横放还是竖直放。
在这里插入图片描述

其次是
subplot(‘Position’,pos) 在 pos 指定的自定义位置创建坐标区。使用此选项可定位未与网格位置对齐的子图。指定 pos 作为 [left bottom width height] 形式的四元素向量。如果新坐标区与现有坐标区重叠,新坐标区将替换现有坐标区。
这是需要自己定义每个图的位置、尺寸等信息,来绘制图。
在这里插入图片描述
3.最后,确定明白每个量的含义,自己根据布局自己尝试放置位置:
图片调整:
Step 1:调整画布大小

set(gcf,'position',[250 300 600 200])

的作用是调整整个画布大小。250,300这两个参数不影响画布大小,其作用是确定画出来的图在电脑屏幕上的显示位置,改为0,0则图显示在电脑左下角。600,200确定画布宽高,600为宽,高200,画出的图为600x200的长方形。
Step 2:调整子图位置大小

set(gca,'position', [0.05 0.15 0.3 0.58]);%%%或者下面的
subplot(1,3,1,'position', [0.05 0.15 0.3 0.58]);%%%再或者下面的
subplot('position', [0.05 0.15 0.3 0.58]);

前两个参数确定该子图起始位置,0.05,0.15表示该子图左下角坐标,调整这两个参数可以控制整张图下方与左侧方白边的大小。后两个参数控制每幅子图宽高。宽度与高度的调整可以控制整张图右侧方及上方空白区域大小。这里要根据整个画布进行调整,让0.58与600x200的画布高度贴合,尽量使之紧凑。太小就会上边或下边很大区域都是空白
最后的函数可以如下:

subplot('position', [0.05 0.32 0.92 0.18]);%子图3
plot(t,-VarName2,'-b');hold on;
xlabel('x/s','FontSize',14);
ylabel('y/N','FontSize',14);     
subplot('position', [0.05 0.08 0.92 0.18]);%子图3
%set(gca,'position', [0.05 0.75 0.9 0.15]);
plot(t,VarName3,'-b');hold on;plot(t,VarName3,'-r');hold on;
xlabel('x/s','FontSize',14);
ylabel('y/N','FontSize',14); 

最后效果与下图类似,但是可以铺满整个面 每个子图的长度和宽度需要自己手动调整好才行):
在这里插入图片描述

参考:
Matlab调整子图位置及大小(祛白边)+调整画布大小+添加总标题

matlab确定figure大小、子图大小以及间距

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐