convert a time series into a real time animated plot

67 Ansichten (letzte 30 Tage)
Marc Elmeua
Marc Elmeua am 26 Mär. 2022
Kommentiert: Star Strider am 27 Mär. 2022
I am trying, with no success to display a plot of the attached timeseries in a way that it shows like if it was a real-time plotting.
Any help?
Thanks in advance

Akzeptierte Antwort

Star Strider
Star Strider am 26 Mär. 2022
Try something like this —
LD = load('timeseries.mat');
time2 = LD.time2;
Time = time2.Time;
Data = time2.Data;
DataRange = [min(Data), max(Data)];
TimeRange = [min(Time), max(Time)];
figure
hold on
for k = 1:numel(Time)-1
plot(Time(k:k+1), Data(k:k+1), '-b')
axis([TimeRange DataRange])
grid
pause(0.0001)
end
hold off
Make appropriate changes to get the desired result.
.
  2 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Voss
Voss am 26 Mär. 2022
Here's one way:
load('timeseries.mat')
figure();
my_line = line();
for ii = 1:numel(time2.Time)
set(my_line,'XData',time2.Time(1:ii),'YData',time2.Data(1:ii));
drawnow();
end
Alternatively, you can use an animatedline.

Walter Roberson
Walter Roberson am 26 Mär. 2022
Times = time2.Time;
Data = time2.Data;
N = 10; %at a time -- one at a time is very slow
nsamp = length(Times);
h = animatedline();
for K = 1 : N : nsamp
idx = K : min(K+N-1, nsamp);
addpoints(h, Times(idx), Data(idx));
drawnow();
end

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Produkte


Version

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by