解決問題:使用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);
程序運行結果:
默認情況下,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。
程序運行結果為: