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

Categories

Find more on Discrete Data Plots 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!