
matlab圖形句柄shancumt.github.io
[toc]
1. 圖形對象
圖形對象:具有公共屬性的元素的集合
圖形對象的層次結構
擷取圖形對象句柄的函數
| 函數 | 功能 |
| :-----: | :--------------------------------------------------: |
| gcf | 擷取目前圖形視窗的句柄(get current figure) |
| gca | 擷取目前坐标軸的句柄(get current axis) |
| gco | 擷取最近被選中的圖形對象的句柄(get current object) |
| findobj | 按照指定屬性來擷取圖形對象的句柄 |
圖形對象的句柄由系統自動配置設定,每次配置設定的值不一定相同。在擷取對象的句柄後,可以通過句柄來設定或擷取對象的屬性。
2. 圖形對象的屬性
- 屬性名+屬性值
- 屬性名用
括起來,不區分大小寫''
- 設定屬性:
如果在調用set函數的時候忽略全部的屬性名和屬性值,則将顯示出句柄所有的允許屬性set(句柄,'屬性名1',性值1,'屬性名2',屬性值2···)
- 擷取屬性值:
V = get(句柄,'屬性名')
V是擷取的屬性值
如果在調用get函數是省略屬性名,則将傳回句柄所有的屬性值。
- 圖形對象的公共屬性
- Children屬性:該屬性的取值是該對象所有子對象的句柄組成的一個向量
- Parent屬性:該屬性的取值是該對象的父對象的句柄
- Tag屬性:該屬性的取值是一個字元串,相當于給該對象定義了一個辨別符。此後,在任何程式中均可以通過findobj()函數來擷取該辨別符所對應的 圖形的句柄 。例如:
hf = findobj(0,'tag','flag1')
- Type屬性:表示該對象的類型,其取值不可改變。
- UseData屬性:該屬性的取值是一個 矩陣 ,預設是空矩陣,在程式設計時,可以将資料儲存在該矩陣中,以達到 資料傳輸 的目的。
- Visible屬性:取值為on(預設值)或off,用來顯示或隐藏圖形視窗的動态變化過程。
- ButtonDownFcn屬性:該屬性的取值是一個字元串,一般是某個M檔案或一小段Matlab程式,當滑鼠指針位于對象之上,使用者按下滑鼠鍵時執行的字元串。
- CreateFcn屬性:
- DeleteFcn屬性等
3. 圖像視窗對象
建立圖形視窗對象
句柄變量 = figure('屬性名1',屬性值1,'屬性名2',屬性值2···)
figure
句柄變量 = figure
關閉圖形視窗
close(視窗句柄)
:關閉圖形視窗
close all
:關閉所有的圖形視窗
clf
:清楚目前圖形視窗的内容,但不關閉視窗
屬性
- Menubar:用于控制圖形視窗是否應該具有菜單條,取值為figure(預設值)或None
- Name:它的屬性取值可以是任意 字元串 ,預設值為空
- NumberTitle:決定圖形視窗标題是否以“Figure No.n”為标題字首,取值為on(預設值)或off
- Resize:決定圖形視窗建立後是否可用 滑鼠改變該視窗的大小 ,取值為on(預設值)或off
- Position:定義了圖形視窗對象在螢幕上的位置和大小,取值為[n1,n2,n3,n4],其中n1和n2分别為視窗左下角的 橫縱坐标值 ,n3和n4分别為視窗的 寬度和高度 ,機關由units屬性決定
- Units:該屬性的取值為:pixel(像素,預設值),normalized(相對機關),inches(英寸),centimeters(厘米)和points(磅)
- Color:取值為一個顔色值,既可以用 字元 表示,也可以用RGB三元組表示,預設值為[0.8 0.8 0.8]
- Pointer:用于設定滑鼠标記的顯示形式,取值為arrow(預設值),crosshair,watch,top,topr,botl,botr,circle,cross,fleur,custom等
- KeyPressFcn:
- WindowButtonDownFcn:滑鼠按下響應
- WindowButtonMotionFcn:滑鼠移動響應
- WindowButtonUpFcn:滑鼠釋放響應
4. 坐标軸對象
所謂在某個圖形視窗中輸出圖形對象,實質上指在該圖形視窗中的目前坐标軸中輸出圖形圖像。
坐标軸對象是圖形視窗的子對象,每個圖形視窗中可以定義多個坐标軸對象,但是隻有一個坐标軸對象是目前坐标軸對象。
建立坐标軸對象
-
句柄函數 = axes('屬性名1',屬性值1,'屬性名2',屬性值2···)
-
axes
-
句柄變量 = axes
-
:将坐标軸設為目前坐标軸,且坐标軸所在的圖形視窗自動成為目前圖形視窗axes(坐标軸對象)
屬性
- Box:決定目前坐标軸是否帶有邊框,取值為 on或off(預設值)
- GridLineStyle:定義網格線的類型,取值為
,:
,-
,-.
或--
None
- Position:決定坐标軸矩形區域在圖形視窗中的位置,取值為取值為[n1,n2,n3,n4],其中n1和n2分别為視窗左下角的 橫縱坐标值 ,n3和n4分别為視窗的 寬度和高度 ,機關由units屬性決定
- Units:定義了Position屬性的度量機關,該屬性的取值為:pixel(像素),normalized(相對機關,預設值),inches(英寸),centimeters(厘米)和points(磅)
- Title:該屬性的取值是目前坐标軸标題文字對象的句柄,可以通過該屬性對坐标軸标題文字隊行進行操作。如改變标題顔色,
h = get(gca,'title');set(h,'color','r')
- XLabel,YLabel,Zlabel屬性:3種屬性的取值分别為x,y,z軸說明文字的句柄,其操作與
屬性相同。Title
- XLim,YLim,ZLim屬性:3種屬性的取值粉筆都是具有兩個元素的數值向量,分别定義各坐标軸的上下限,預設值為[0,1],高層函數
實際上是對這些屬性的直接指派axis
- XScale,YScale,ZScale屬性:定義各坐标軸的刻度類型,3種屬性的取值分别為
或linear(預設)
log
- View屬性:定義視點方向,取值為兩個元素的數值向量
5. 底層繪圖操作
曲線對象
曲線對象是坐标軸對象的子對象,它既可以定義在二位坐标系中使用,也可以定義在三維坐标系中使用
建立曲線對象
-
句柄對象 = line(x,y,z,'屬性名1',屬性值1···)
屬性
- 公共屬性
- Color屬性:取值為代表顔色的字元或RGB值
- LineStyle屬性:定義線型
- LineWidth屬性:定義線寬,預設值為0.5磅
- Marker屬性:定義資料點标記符号,預設值為
none
- MarkerSize屬性:定義資料點标記符号的大小,預設值為6磅
- XData、YData、ZData屬性:表示曲線對象的3個坐标軸資料,取值為數值向量或矩陣
曲面對象
曲線對象也是坐标軸的子對象,它定義在三位坐标系中,而坐标系可以在任何視點下
建立曲面對象
-
句柄對象 = surface(x,y,z,'屬性名1',屬性值1···)
屬性
- 公共屬性
- EdgeColor屬性:定義曲面網格線的顔色或着色方式,取值為代表顔色的字元或RGB值還可以是
、flat
或interp
,預設值為黑色none
- FaceColor屬性:定義曲面網格片的顔色或着色方式,取值和
屬性相似,預設值為EdgeColor
flat
- LineStyle屬性:定義網面網格線的類型
- LineWidth屬性:定義網格線的線寬,預設值為0.5磅
- Marker屬性:定義曲面資料點标記符号,預設值為
none
- MarkerSize屬性:定義曲面資料點标記符号的大小,預設值為6磅
- XData、YData、ZData屬性:表示曲線對象的3個坐标軸資料,取值為數值向量或矩陣
文本對象
建立文本對象
-
其中的說明文字除使用标注的ASCII字元為,還可使用LaTeX格式的控制字元句柄對象 = text(x,y,z,'說明文字','屬性名1',屬性值1···)
屬性
- Color屬性:定義文字對象的顯示顔色
- String屬性:定義文字标注的内容,取值為字元串或字元串矩陣
- Interpreter屬性:取值為Latex或None,控制文字标注内容的解釋方式,即LaTex方式或ASCII方式
- FontSize屬性:定義文字對象的大小,預設值為10磅
- Rotation屬性,定義文字對象的旋轉方向,取值為數值量,預設值為0,取正值時表示逆時針方向旋轉,負值時表示順時針方向旋轉。