matlab是面向对象的,最高等级的对象是screen,它定义了figure可以用的最大szie。screen下面是figure。figue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。figure下面是axes。axes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。总结起来就是三级对象,screen尺寸/figure尺寸/轴axes尺寸,通过set(gcf,'position')控制figure在屏幕上的位置和尺寸,通过set(gca,'position')控制轴axes在figure上的位置和尺寸。
- 设置figture窗口的形状(默认为近似正方形)
set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]);
%其在屏幕上的显示,四个参数分别表示的是左边界,下边界,高度,宽度。 - 设置axis在figture中的边距
set (gca,'position',[0.1,0.1,0.8,0.8] );
%设置坐标轴在figture中的边距,四个参数分别表示的是左边界,下边界,高度,宽度。
export_fig是matlab的一个附加程序包,用于输出高质量图片,figure窗口的图片有多大,它就输出多大尺寸的图片,即所见即所得。
屏幕显示图像尺寸可以plot时用 set(gcf,'position',[left bottom width height]) 调整,或者print之前拖动窗口手动调整
要使图像比例输出与屏幕显示的一致,可以使用如下命令:
set(gcf, 'PaperPositionMode', 'auto') % Use screen size
print -dtiff myfigure
注意“set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]);
”中position和paperposition的不同