matlab中的图窗属性和坐标轴的属性

图窗的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]);

matlab中的图窗属性和坐标轴的属性_第1张图片
直接在图窗->编辑里可以查看属性:

matlab中的图窗属性和坐标轴的属性_第2张图片 matlab中的图窗属性和坐标轴的属性_第3张图片

坐标轴的Position, TightInset和Outerposition

表示坐标轴的位置和大小。
gca可以理解为在当前图窗下创建的坐标区的句柄。
matlab中的图窗属性和坐标轴的属性_第4张图片
直接在图窗->编辑里可以查看属性

matlab中的图窗属性和坐标轴的属性_第5张图片 matlab中的图窗属性和坐标轴的属性_第6张图片

上面坐标轴属性中,位置:
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)的图:

matlab中的图窗属性和坐标轴的属性_第7张图片

前面使用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。

你可能感兴趣的:(Matlab,可视化,matlab,开发语言)