MATLAB画图之自定义图片大小

时间:2024-03-02 09:20:27

解决问题:使用MATLABplot函数画图时弹出图片的大小和位置修改。

MATLAB画图的几个概念:

screen: 屏幕;

figure: 弹出来的对话框;figure变化,screen不会变化;screen变化,figure不会变化;

axes: figure 中的图像,axes的大小取决于figurefigure大小变化,axes大小也会变化;

set(gcf, ……):figure大小和位置进行设置;

set(gca, ……):axes大小和位置进行设置;

 

一、自定义figure的大小和位置

程序:

clear;
clc;
close all;
t = 0:0.001:10;
y1 = sin(t);
 
figure(1);
plot(t,y1);

程序运行结果:

 

默认情况下,figure大致在screen的正中间,大致为一个方形(具体参数没有深究),如果我们想要自定义figure在screen的位置和大小,有两种方法可以实现。

第一种方法:在声明figure时定义大小,将上述程序修改为:

clear;
clc;
close all;
t = 0:0.001:10;
y1 = sin(t);
 
figure(\'Units\',\'centimeter\',\'Position\',[5 5 7 3.5]);
plot(t,y1);

其中\'Units\',\'centimeter\' 用来定义单位;\'Position\',[5 5 7 3.5]用来定义位置。

[5 5 7 3.5]表示为[x0 y0 width height]

X0, y0: 表示figure左下角在screen中的位置,参考位置是screen左下角;

Width, height: 表示figure的宽和高的大小。

程序运行结果:

 

第二种方法:使用set(gcf, ……)命令,将上述程序修改为:

clear;
clc;
close all;
t = 0:0.001:10;
y1 = sin(t);
 
figure(1);
set(gcf,\'Units\',\'centimeter\',\'Position\',[5 5 7 3.5]); 
plot(t,y1);

单位和位置的定义方式同第一种方法,程序运行结果为:

 

 

二、 自定义figure中图像的大小和位置

使用set(gca, ……)指令,该指令设置的是图的坐标线axes的位置及大小,并不是坐标线标注的位置。

将上述程序修改为:

clear;
clc;
close all;
t = 0:0.001:10;
y1 = sin(t);
 
figure(1);
set(gcf,\'Units\',\'centimeter\',\'Position\',[5 5 7 3.5]); 
set(gca,\'position\',[0.3,0.2,0.5,0.6]);
plot(t,y1);

该指令中的单位为相对值,其中0.3,0.2表示axes的左下角在figure中的距离为figure的宽度×0.3和figure的高度×0.2;

0.5和0.6表示axes的宽度和高度分别为figure的宽度×0.5和figure的高度×0.6。

程序运行结果为: