plot a vertical line on datetime axis of a time series

조회 수: 30 (최근 30일)
Siriki Kone
Siriki Kone 2022년 10월 18일
댓글: Star Strider 2023년 3월 22일
Hi! I have 4 waveforms which i want to plot by using the subplot fonction. For each of them i want to plot a vertical line at a specific time. Here is my code to plot my waveform:
figure1=figure
for k4=1
File4=AllFiles4(k4).name;
X4=rdmseed(strcat(P4,File4)); %('AllFiles(k).name');
d9 = cat(1,X4.d);
% dd7=d7*gainfac2;
d10=d9/max(d9); %d2=d1/max(d1);
d6=bandpass(d10,[0.01 50],s_rate); %d3==bandpass(d2,[4 50],s_rate)%
ndp=length(d10); %ndp=length(d3);
t=[0:dt:(ndp-1)/s_rate];
dt2=datetime(2021,07,09,16,32,t);
% ndp2=length(d6);
subplot(4,1,1);
plot(dt2,d10) %plot(dt2,d4)
ylabel('Amplitude (counts)')
xlabel('time (hh:mn:ss)')
title('Waveform Geophone / Jul21')
% hold on
% tMark = datetime(16,32,41);
% % % plot([tMark tMark], 'color', 'r', 'LineWidth', 1);
% plot([tMark tMark], ylim, 'color', 'r', 'LineWidth', 1);
%
% hold off
end
when i uncomment the line that i wrote for the plot of this verical line, which are the following lines
hold on
tMark = datetime(16,32,41);
% % plot([tMark tMark], 'color', 'r', 'LineWidth', 1);
plot([tMark tMark], ylim, 'color', 'r', 'LineWidth', 1);
hold off
i got the this as plot:
can someone help me on this? i want to plot this red vertical line in each of the waveform (here was for the plot in subplot (4,1,1) at the time position 16:32:41.

답변 (1개)

Star Strider
Star Strider 2022년 10월 18일
Perhaps —
dt = 1E-2; % Create Data
ndp = 1E+4; % Create Data
s_rate = 100; % Create Data
t=[0:dt:(ndp-1)/s_rate];
dt2=datetime(2021,07,09,16,32,t);
d10 = randn(size(dt2)) .* sin(2*pi*second(dt2)/10) % Create Data
d10 = 1×10000
0 0.0062 -0.0097 -0.0005 -0.0271 0.0470 -0.0070 -0.0686 0.0394 0.0231 -0.0156 0.1088 0.0669 -0.1076 -0.1584 -0.0003 -0.0709 -0.0595 0.0506 0.2162 0.1106 0.2599 -0.0571 0.1223 0.2426 -0.1198 0.0553 0.0449 -0.1739 0.0711
% ndp2=length(d6);
subplot(4,1,1);
hold on
plot(dt2,d10) %plot(dt2,d4)
ylabel('Amplitude (counts)')
xlabel('time (hh:mn:ss)')
title('Waveform Geophone / Jul21')
tMark = datetime(2021,07,09,16,32,41);
plot([tMark tMark], ylim, 'color', 'r', 'LineWidth', 1);
hold off
You need to define the date as well as the time in ‘tMark’.
To plot it, use the hold function. Another option is xline.
.
  댓글 수: 4
Paul Barrette
Paul Barrette 2023년 3월 22일
Certainly. But how do I do that? (Sorry, am a beginner).
Star Strider
Star Strider 2023년 3월 22일
Thank you!
At the top of the Answer window on the right there are a number of options: Vote, Link, etc. Clicking on Vote should work.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by