1. 程式人生 > >Matlab畫圖進階

Matlab畫圖進階

.cn 什麽是 board graphic .com set its 設置 圖像

轉自http://blog.sina.com.cn/s/blog_6407cd700101921q.html

axes和figure都屬於graphics object,用於繪圖與圖像顯示,既然是兩種東西,當然兩者之間並不是等同的關系,下面將就幾個問題進行解釋,讓大家正確區分這兩個概念。

第一:什麽是figure?

figure的翻譯是圖像,這個誰都知道,但是在matlab中的figure對象準確意義應該是:matlab軟件用於直觀性圖形輸出的窗口個體,這個概念很多人沒有。

第二:什麽是axes?

一張白紙上可以畫畫,你可以在紙上的任何區域畫,這個確定畫圖區域並確定作圖的一些方式的東西的就是axes,也就是坐標對象。畫圖的作用就是,在當前的活動figure對象中的一個坐標對象上作圖。

第三:axes與figure

一張白紙上可以畫在幾個區域內畫圖,而所謂區域,必須存在於白紙上才有意義。figure上可以有多個axes,axes必須在figure上,要畫圖必須有axes。

第四:關於句柄

axes和figure的對象屬性能讓用戶方便的進行操作,例如在figure上選中一個axes:

set(figure_handle,‘CurrentAxes‘,axes_handle)

第五:關於axes圖像復制問題

前些天想從在gui中現這樣一個功能:在gui中對其中的一個axes上的圖像進行copy fiure,結果無論是hgexport函數還是print,操作對象只能是fiure句柄,在網上找了找發現有幾個朋友跟我有同樣的想法,都是沒看到解決辦法,一想的確是2了,就好比在figure用了subplot命令,難道你還想一次copy figure只復制一個子圖麽?辦法不是沒有,將子圖復制為新的figure對象輸出後刪除,但是沒太大意義。

實現方法:

1 newf = figure(visible,off); %產生不可見的figure對象 
2 
3 axes2 = copyobj(handles.axes1,gcf); %把GUI中的圖復制到新figure中 
4 
5 set(axes2,units,default,position,default); 對axes進行設置 
6 
7 hgexport(gcf,-clipboard); %輸出到剪貼板 
8 
9 delete(newf); %刪除不可見的figure

註意,創建為新的坐標軸對象後,必須對其位置,大小進行調整,否則會出現混亂,即上文的set語句,根據需要進行調整。

Matlab畫圖進階