Drawing Vertical Lines in a datetime plot

5 views (last 30 days)
Executing the script below gives a nice graph.
x = datetime({'2014-05-25';'2014-05-26';'2014-05-27';'2014-05-28';'2014-05-29'});
y=[130, 135, 120, 130, 130];
plot(x,y);
Now, I want vertical lines on certain days to mark events. How can I do this?

Accepted Answer

Star Strider
Star Strider on 29 Dec 2016
Here is how I did it a few days ago in my Answer to a similar Question:
% Make example time series data
t = datetime(2014,6,28) + calweeks(0:9);
y = rand(1,10);
plot(t,y); % Plot time series data
hold on;
tMark = datetime(2014,8,1); % Time to mark by a vertical line
plot([tMark tMark], ylim);
You can easily adapt this to your reuqirements.

More Answers (1)

Walter Roberson
Walter Roberson on 29 Dec 2016
YL = reshape(get(gca, 'YLim'), [], 1);
which_day = reshape(x([2 4]), 1, []);
hold on
plot([which_day; which_day], repmat(YL, 1, length(which_day)))
hold off

Community Treasure Hunt

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

Start Hunting!