2014-10-07 161 views
1

我正在嘗試使matlab記錄來自muse耳機的實時數據,並且我成功地在單個窗口中繪製了加速計數據和電壓v/s時間數據。如果我嘗試爲同一個窗口添加新圖形,那麼新圖形將與現有代碼重疊。使用matlab在單個窗口中繪製多個圖形

這是處理圖形繪製的代碼的一部分。

subplot(2,1,1); 
     time = 0:1/fse:secBuffer-1/fse; 
     h1 = plot(time,eegBuffer); 
     legend(eegName, 'Location','EastOutside'); 
     xlabel('Time (s)') 
     ylabel('Voltage (uV)')   

     subplot(2,1,2); 
     time = 0:1/fsa:secBuffer-1/fsa; 
     h2= plot(time,accBuffer); 
     xlabel('Time (s)') 
     ylabel('Acceleration (mG)') 
     legend(h2, accName, 'Location','EastOutside'); 

     subplot(2,1,3); 
     final = eegBuffer*5; 
     h3 = plot(final,eegBuffer); 
     xlabel('final') 
     ylabel('eegbuffer') 
     %legend(h2, accName, 'Location','EastOutside'); 

     plot1 = false; 

     else 
     cell1 = (num2cell(eegBuffer,1))'; 
     set(h1,{'ydata'},cell1); 
     cell2 = (num2cell(accBuffer,1))'; 
     set(h2,{'ydata'},cell2); 
     cell3 = (num2cell(final,1))'; 
     set(h3,{'ydata'},cell3); 

這裏是截圖:
screen shot

+1

?如果是的話,它應該是現有情節的一部分(查看「hold on」)或者相應地更改子情節的數量。例如。在3個不同的畫布上將所有子圖改爲「子圖(3,1,k)」結果。 (彼此之間),如果你改變第二個條目,你將它們並排放置。所以例如'subplot(2,2,k)'將4畫布排列爲2x2 – 2014-10-07 09:48:42

+0

好極了!我在所有的小區中使用了小區(3,1,k),它工作。謝謝 – brainReader 2014-10-07 10:33:28

回答

5

您正在使用subplot(2,1,X)。如果您閱讀documentation,前兩個數字是「繪圖矩陣」的行和列,因此,您正在定義2x1 = 2個子圖的繪圖矩陣。

如果要繪製三件事情你應該改變的插曲線:

subplot(2,2,1) 

subplot(2,2,2) 

subplot(2,2,3) % or subplot(2,2,3:4) for even more fancy ploting 
要具有相同的窗口(圖),只是一個情節
+0

謝謝。我現在在一個窗口中獲得了3張圖表:) – brainReader 2014-10-07 10:33:59

+2

對於'subplot(2,2,3:4)'+1,我不知道! – 2014-10-07 10:48:34

+1

@LuisMendo aaah Matlab和他很好的情節,這些小事讓我非常喜歡Matlab! – 2014-10-07 13:50:29