图窗的Position和Outerposition
Position 指定窗口的尺寸和窗口在屏幕中的位置。
Outerposition 指定窗口外轮廓的大小和位置。
两者都是用一个4维向量来定义,格式为[左 底 宽 高]。
可通过set函数修改Position和Outerposition,如下:在屏幕左下角,宽高分别为10cm和8cm。
figure('Units', 'centimeters', 'position', [10 5 9 6])
或者
gcf 表示当前图窗的句柄
set(gcf, 'unit', 'centimeters', 'position', [10 5 9 6]);
直接在图窗->编辑里可以查看属性:
坐标轴的Position, TightInset和Outerposition
表示坐标轴的位置和大小。
gca可以理解为在当前图窗下创建的坐标区的句柄。
直接在图窗->编辑里可以查看属性
上面坐标轴属性中,位置:
Outerpositon取值[0,0,1,1]表示在图窗的position区域全屏显示。
如何去白边
LooseInset是Matlab坐标轴的一个隐藏属性,其默认值是[0.13, 0.11, 0.095, 0.075],从而为刻度标记留出一定的空间。
可以使用下面的代码输出去白边的图片:
set(gca,'LooseInset',get(gca,'TightInset'))
去白边后图的大小
ax=gca;
pos=ax.Position;
[PL,PB,PW,PH]=deal(pos(1),pos(2),pos(3),pos(4));
Inset=ax.TightInset;
[TL,TB,TR,TT]=deal(Inset(1),Inset(2),Inset(3),Inset(4));
参考博客(https://blog.csdn.net/yq_forever/article/details/126158870)的图:
前面使用set(gcf, ‘unit’, ‘centimeters’, ‘position’, [10 5 9 6]);指定的是包含了这个坐标轴Outerposition的区域大小。
使用set(gca,‘LooseInset’,get(gca,‘TightInset’));得到了去白边的TightInset区域。
但是通过命令Inset=ax.TightInset;获得的是TightInset区域相对于坐标区position的偏移,如上图。
所以去白边后的图片大小为:
TH = PH+TB+TT;
TW = PW+TL+TR;
这里是归一化的尺寸,需要调整回单位cm。