2014-10-07 149 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

相关问题