Re: [問題] 請問subplot的圖可以萃取出其中之一嗎?
※ 引述《phonex (一生懸命)》之銘言:
: 我想要利用 subplot 將三張圖存在一個fig檔
: 但是下次開啟的時候, 又想要對其中一張圖放大仔細看
: 請問又沒有方法可以從原來的 fig 檔中 抓出其中一張圖
: 或者是將另外兩張圖刪除呢?
首先你要弄清楚matlab中figure 的架構
close all
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
當以上指令執行到plot時
matlab會create一個figure
再createn附屬於這個figure的axes
然後在這個axes上畫圖
close all
x = -pi:.1:pi;
y1 = sin(x);
y2 = cos(x);
subplot(2,1,1);plot(x,y1)
subplot(2,1,2);plot(x,y2)
當以上指令執行到subplot時
matlab會create一個figure
及 "兩個" 附屬於這個figure的axes
plot會自動在第一個axes上畫圖
第二個subplot會跳到第二個axes
也就是去activate第二個axes
接下來的plot就在這個axes上畫圖
請先保留這個圖以便進一步解說
好...所以你現在要做的事情是
把你想要的axes放大到整個figure
並把其他axes刪掉
首先你要找到這個figure下一共有多少axes
我們要用get指令
t=get(gcf,'children')
get用來取出物件的property
gcf就代表目前active的figure
children就是figure的其中一種property
在這裡就代表所有歸gcf管的axes
你會發現t是個長度為二的vector
因為我們已經用subplot創了兩個axes
如果執行delete(t(1))
那cos的就會被刪去
接下來得把剩下的axes放大
set(t(2),'position',[0 0 1 1])
set就是重新設定物件的property
t(2)就是我們要設定的axes
position是axes的其中一種property
[0 0 1 1]就是我們要設定的值
分別代表左底寬高
因為你希望放到最大
所以 "左邊" 距離figure的框要是零
而 "底邊" 距離figure的框要是零
寬度及高度都要是 100%
這篇講的很簡略
你應該把matlab help中的Graphics翻過一次
尤其是Handle graphic Objects
來互相對照
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.54.155
推
02/08 19:53, , 1F
02/08 19:53, 1F
推
02/09 02:31, , 2F
02/09 02:31, 2F
推
02/09 10:08, , 3F
02/09 10:08, 3F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章