8.1 matlab图形窗口与坐标轴(图形对象的句柄和属性、坐标轴的操作、图形窗口的操作)
1、圖形對象的句柄
(1)句柄的概念
在MATLAB中,用句柄來標識對象,通過句柄來訪問相應對象的屬性:在MATLAB系統中建立—個對象,系統就會建立—個映射該對象的句柄,用于存諸相應對象的屬性。
例1:繪制多個圖形,并保存圖形句柄。
t = 0:pi/10:2*pi; h1 = plot3(t+pi,t-2*pi,sin(t),'r'); %h1是調用plot3函數繪制的曲線的句柄 hold on;[x,y] = meshgrid(t); z = sin(x); h2 = mesh(t-2*pi,t+pi,z); %h2是調用mesh函數繪制的曲面的句柄[x3 y3 z3] = cylinder(t); h3 = surf(x3,y3,z3); %h3是調用surf函數繪制的圓錐的句柄 grid on; xlabel('X軸') ylabel('Y軸') zlabel('Z軸')
(2)訪問圖形對象
是指獲取或設置圖形對象的屬性,不同圖形對象所具有的屬性不同,但訪間的方法是一樣的,一般使用點運算符來訪問對象屬性。
一般形式為:
對象句柄.屬性名
例2:對象句柄的使用
x = linspace(0,2*pi,100); y = sin(x);subplot(2,1,1) h0 = plot(x,y) %hO是通過plot函數建立的曲線對象的句柄 h0.Color %獲取曲線對象的Color屬性,得到一個RGB向量 h0.LineWidth = 2; %設置曲線的寬度 title('線寬為‘2’的正弦曲線','color','r')subplot(2,1,2) h1 = plot(x,y) %hO是通過plot函數建立的曲線對象的句柄 h1.Color %獲取曲線對象的Color屬性,得到一個RGB向量 h1.LineStyle = '-.'; %設置曲線的線型 title('線型為‘-.’的正弦曲線','color','r')%輸出結果h0 h0 = Line - 屬性:Color: [0 0.4470 0.7410]LineStyle: '-'LineWidth: 0.5000Marker: 'none'MarkerSize: 6MarkerFaceColor: 'none'XData: [1×100 double]YData: [1×100 double]ZData: [1×0 double]顯示 所有屬性ans =0 0.4470 0.7410%輸出結果h1 h1 = Line - 屬性:Color: [0 0.4470 0.7410]LineStyle: '-'LineWidth: 0.5000Marker: 'none'MarkerSize: 6MarkerFaceColor: 'none'XData: [1×100 double]YData: [1×100 double]ZData: [1×0 double]顯示 所有屬性ans =0 0.4470 0.7410(3)獲取特定圖形對象句柄的函數
①gcf: 獲取當前圖形窗口的句柄。
②gca: 獲取當前坐標軸的句柄。
③gco: 獲取最近被選中的圖形對象的句柄。
④findobj: 按照指定的屬性來獲取圖形對象的句柄。
例3:獲取特定圖形對象句柄
x = linspace(0,2*pi,100); y = sin(x); h = plot(x,y) h1 = gcf %獲取當前圖形窗口的句柄存儲于h1%輸出結果 h1 = Figure (1) - 屬性:Number: 1 %存儲窗口序號Name: '' %存儲窗口標題Color: [0.9400 0.9400 0.9400] %存儲窗口的背景色Position: [680 558 560 420] %存儲窗口在屏幕中的位置Units: 'pixels' %存諸窗口長度的度量單位2、圖形對象的屬性
(1)圖形對象的常用公共屬性
①Children屬性: 該對象的所有子對象的句柄組成的一個向量。
②Parent屬性: 該對象的父對象的句柄。
③Type屬性: 對象的類型,這是一個只讀屬性。
④Tag屬性: 用于給對象定義一個標識符。
例2:分別在兩個子圖中繪制曲線和曲面,然后設置子圖1的背景色為黃色,曲線線條顏色為紅色,設置子圖2的背景色為青色。
subplot(2,2,1) fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,6*pi]); %繪制曲線 title('曲線') axis equalsubplot(2,2,2) [x y z] = peaks(20); title('曲面') mesh(x,y,z); %繪制曲面subplot(2,2,3) h11 = fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,6*pi]); %曲線的句柄 title('曲線') axis equal h110 = h11.Parent %獲取曲線的父對象 h110.Color = 'y' %設置曲線的背景色為黃色 h11.Color = 'r' %設置曲線線條為紅色,也可在函數里面設置subplot(2,2,4) [x y z] = peaks(20); h22 = mesh(x,y,z); %曲面的句柄 title('曲面') h22.Parent.Color = 'cyan' %設置背景色為青色
(2)圖形對象的常用動態屬性
①KeyPressFcn屬性: 定義按下鍵盤按鍵事件的響應。
②CreateFcn屬性: 定義創建圖形對象時做出的響應。
③DeleteFcn屬性: 定義取消圖形對象時做出的響應。
④WindowButtonDownFcn或ButtonDownFcn屬性: 定義單擊鼠標左鍵事件的響應。
這些屬性的值一般是函數句柄、存儲命令的單元數組、描述命令的字符串當對應事件發生時,系統將自動調用句柄所代表的函數、或執行單元數組中的命令、或字符串描述的命令,實施相關操作。
3、圖形窗口的操作
(1)建立圖形窗口對象
使用figure函數,其調用格式為:
①句柄變量=figure(屬性1,屬性值1,屬性2,屬性值2,…),其中,屬性用于設置圖形窗口的特征。
②句柄變量=figure //調用時不帶參數,則按MATLAB默認的屬性值建立圖形窗口。
③figure(窗句柄) //設定該句柄對應的窗口為當前窗口。
(2)圖形窗口常用屬性
①MenuBar屬性: 控制圖形窗口是否具有菜單條,其取值為’none’或’figure’ 。
②Name屬性: 指定圖形窗口的標題。
③NumberTitle屬性: 決定著在圖形窗口的標題中是否以“Figure n: ”為標題前綴。
④Color屬性: 設定圖形窗口背景的顏色。
⑤Position屬性: 定義了圖形窗口對象在屏幕上的位置和大小,值是一個4元行向量[x, y, w, h]。其中x、y分別為窗口左下角的橫縱坐標值,w h分別為窗口的寬度和高度。
⑥Units屬性: 定義圖形窗口使用的長度單位:‘pixels’(像素)、‘inches’(英寸)、‘centimeters’(厘米)、 ‘points’(磅)、 ‘normalized’(指定用相對單位將屏幕左下角對應為0 0,而右上角對應為1.0 1.0,后面定義的長度是相對這個區域的比例)
例3:建立一個圖形窗口。該圖形窗口沒有菜單條,標題名稱為“圖形窗口示例”,起始于屏幕左下角、寬度和高度分別為300像素點和150像素點,背景顏色為青色,且當用戶從鍵盤按下任意一個鍵時,然后在窗中單擊鼠標左鍵,在鼠標指針所在位置將顯示“Hello,World!”。
hf = figure; hf.MenuBar = 'none'; %該圖形窗口沒有菜單欄 hf.Name = '圖形窗口示例'; %該圖形窗口標題為‘圖形窗口示例’ hf.Position = [1 1 300 150]; %起始于屏幕左下角、寬度和高度分別為300像素點和150像素點 hf.Color = 'cyan'; %背景色為青色,也可為hf.Color = [0,1,1] hf.NumberTitle = 'off'; %不顯示標題前綴 hf.ButtonDownFcn = '"Hello,World!"';%輸出結果 ans = "Hello,World!"4、坐標軸的操作
坐標軸對象是圖形對象的父對象,即當作圖形對象的容器。在沒有指明坐標軸時所有的圖形對象,都是在當前坐標軸中輸出。
(1)建立坐標軸對象
使用axes函數,其調用格式為:
①句柄變量=axes(屬性1,屬性值1,屬性2,屬性值2,…) ,其中,屬性用于設置坐標軸的特征。
②句柄變量=axes //不帶參數時,則按MATLAB默認的屬性值,在當前圖形窗口創建坐標軸 。
③axes(坐標軸句柄) //如果axes函數的參數是坐標軸句柄,則設定該句柄代表的坐標軸為當前坐標軸,隨后繪制的圖形都顯示在這個坐標軸中
(2)坐標軸對象的屬性
①Position屬性: 定義坐標軸在圖形窗中的位置和大小。
②Units屬性: 定義坐標軸使用的度量單位,默認值是’normalized’。
③Box屬性: 決定坐標軸是否帶有邊框,可取值是’on’或’off’(默認值)。
④GridLineStyle屬性: 用于定義網格線的類型,取值可以是∵(默認值)、‘一’、’-.’、’-一’或’none’。
⑤Title屬性: 用于對坐標軸標題對象進行操作,取值是通過title函數建立的標題對象的句柄。
⑥XLabel、YLabel、ZLabel屬性: 取值分別是通過xlabel、ylabel、zlabel函數建立的坐標軸標簽對象的句柄。
⑦XLim、YLim、ZLim屬性: 用于定義各坐標軸的下限和上限,取值是向量[Lmin, Lmax],默認值為[0,1]。
⑧XScale、YScale、ZScale 屬性: 用于定義各坐標軸的刻度類型,可取值是’linear’(默認值)、‘log’。
⑨View屬性: 用于定義視點,取值是向量[az, el],az定義視點的方位角,el定義視點的仰角。坐標軸默認視點的方位角為0度,仰角為90度。
⑩ColorOrder屬性: 用于設置多條曲線的顏色順序,是一個nx 3矩陣,矩陣的每一行用RGB三元組表示一種顏色,默認n為7。
例4:坐標軸對象的屬性
h1 = axes('Position',[0.1 0.1 0.7 0.7]); %在當前圖形窗口建立一個坐標軸,大小為窗口的70%, contour(peaks(20)) %調用contour 函數繪制等高線圖 h1.Title = title('等高線'); %設置坐標軸的標題 h1.XLabel = xlabel('東西向'); %設置x軸標簽 h1.YLabel = ylabel('南北向'); %設置y軸標簽h2 = axes('Position',[0.65 0.7 0.28 0.28]); %在圖形窗口的右上邊建立一個坐標軸 surf(peaks(20)) %調用surt函數繪制尖峰函數圖 h2.View = [-30 45]; %設置當前坐標軸的視點位置
例5:定義ColorOrder屬性,繪制6條曲線。
總結
以上是生活随笔為你收集整理的8.1 matlab图形窗口与坐标轴(图形对象的句柄和属性、坐标轴的操作、图形窗口的操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.2 matlab符号微积分(符号函数
- 下一篇: 8.2 matlab曲线对象和曲面对象(