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

MATLAB画图的几个概念:

screen: 屏幕;

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

axes: figure 中的图像,axes的大小取决于figure,figure大小变化,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);

程序运行结果:

0c6906528327793716d421934ba35caa.png

默认情况下,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的宽和高的大小。

程序运行结果:

7c59d3241e45b242f7918495ecd90a20.png

第二种方法:使用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);

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

d513dd07661ebadaa7a10eed6e5f8e45.png

二、 自定义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。

程序运行结果为:

0d9fecfbc8b485250dfee7a1d7a87d1d.png

9c73203af8fdea2abaad2665f4f63759.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐