Draw vertical lines which have constant interval
3 views (last 30 days)
Show older comments
Hi, I attached time(datetime, 1980.1.1~2015.12.31) and set y value as P=[1:432].
* I convert date form.I also attached original time form(original_time)
time = datetime(original_form,'ConvertFrom','datenum');
If i draw the plot, i got below figure.
plot(time,P);
datetick('x','yy/mm','keeplimits');
grid on

And i want to add constant vertical line on every March.
I couldn't fine proper method. Please help me :(
Accepted Answer
VBBV
on 3 Oct 2022
Edited: VBBV
on 3 Oct 2022
P=[1:432]
original_form = load('original_time.mat')
time = datetime(original_form.t,'ConvertFrom','datenum')
plot(time,P);
%datetick('x','yy/mm','keeplimits');
grid on
march = time(1) + calmonths(2) : calyears(1) : time(end)
xticks(march)
xline(march,'linestyle','--')
3 Comments
VBBV
on 3 Oct 2022
Edited: VBBV
on 3 Oct 2022
@Walter Roberson you're right. sorry, i overlooked that line. thanks for it.
More Answers (1)
Walter Roberson
on 3 Oct 2022
Edited: Walter Roberson
on 3 Oct 2022
time = datetime(original_form,'ConvertFrom','datenum');
plot(time, P);
firstmarch = dateshift(time(1), 'start', 'year') + calmonths(2);
lastmarch = dateshift(time(end), 'start', year') + calmonths(2);
marchs = firstmarch : calmonths(12) : lastmarch;
xline(marchs)
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!