如何在绘图时删除以前的点?

时间:2017-01-17 15:34:24

标签: matlab plot data-visualization

我正在绘制实时数据:对于绘图,我使用的是线函数,与使用绘图函数时相比,它提高了很多绘图性能。尽管如此,情节会随着时间的推移变慢。我意识到我正在创建的样本点被绘制,但即使它们之后不可见,仍然会留在图中。这会导致性能下降吗?

我只是想看看当前三秒的采样点,如果使用clf或cla函数,只看到很小一部分信号,这对我没有帮助。你有什么建议吗?

%% opening function:

handles.figureHandle=figure;
guidata(hObject, handles);
t=1/200; %sample rate 5ms

%% button function:

if 40< newSamples
figure(handles.figureHandle)
              t = max(t) + (1:size(sample,1)) * 1/200;
              for x=1:8
                  subplot(8,8,x);
                  hold on
                  line('XDATA',t,'YDATA',sample(:,x),'MarkerSize', 1,'Color','r');
                  ylim([0 1024]);
                  xlim([max(t)-1 max(t)+2]);
                  hold off
              end


drawnow ;
      end

更新

%% opening function
sample=[];
t=[];
handles.figureHandle
for i=1:8
    subplot(2,2,i);
    hold on
    h=line(t,sample,'MarkerSize', 1,'Color','r');
    %          ylim([0 1024]);
    %          xlim([max(t)-1 max(t)+2]);
    hold off
end

t=1/200;
%% button function
figure(handles.figureHandle)
t = get(gca, 'XData');
sample = get(gca, 'YData');

t = max(t) + (1:size(sample,1)) * 1/200;
for x=1:8
    set(h,'XData',t,'YData',sample(:,x));
end

0 个答案:

没有答案