2014年8月13日 星期三

[Matlab/Octave] 繪製多圖 (subplot)

一次畫一張圖不夠看,想要有細部檢視又不想畫兩張圖,那就畫在一起吧。一張圖裡面要放超過一張圖,所需要的指令就是subplot,先進行位置指定後再開始畫圖。先來看一張範例。


這是一張波形圖,但因為波形曲線相當密集,因此放大特定區域來看波形曲線。


























程式碼
[x,fs]=wavread('C:\Users\Learning\Desktop\1.wav');
x=x(:,1);
t=(0:length(x)-1)/fs;
subplot(211),plot(t,x) %將繪圖區分成兩個位置,在第一位進行繪圖
xlim([0 max(t)])
ylim([-1.2 1.2])
xlabel('時間 (s)') %若你的Octave不支援中文,請自行改成英文文字
ylabel('震幅')
subplot(212),plot(t,x) %在第二位繪圖
ylim([-1.2 1.2])
xlim([6.219 6.222]) %限定細部位置
xlabel('時間 (s)')
ylabel('震幅')
subplot括弧內前兩個數字是將徒的區域橫向切幾分與縱向切幾分,第三個數字是在第幾個位置上畫圖。subplot(222)則繪圖區為:

12
34

使用subplot不需要侷限一定是幾成幾,每次的subplot都可以單獨看。因此也可以畫出一大圖兩小圖,若指令為:
subplot(211),....
subplot(223),....
subplot(224),....
就可以畫出像這樣的分配

23

沒有留言:

張貼留言

有任何問題可以詢問,我們會盡量回答