how to create timeline plot?

Hi all,
I want to create a timeline plot similer to the following:
North | |||||||||||||||||||||||||||| |||||||||||||||||||||||||||||
|
|
Central | ||||||||||||||||||||||||||||||||||
|_________________________________________
Jan Feb Mar Apr .....etc
start date end date start date end date
the time periods for the north are datenum([2019 01 30]) datenum([2019 04 12], and datenum(2019,07,03) datenum(2019,08,25)
Time for the Central is datenum(2019,01,08) datenum(2019,03,03)
Any help will be appreciated
Thanks.

 Accepted Answer

Try this:
North = [datenum([2019 01 30]), datenum([2019 04 12]); datenum(2019,07,03) datenum(2019,08,25)];
Central = [datenum(2019,01,08) datenum(2019,03,03)];
figure
plot(North', ones(2)*2, '-b', 'LineWidth', 5);
hold on
plot(Central, [1 1], '-r', 'LineWidth',5)
hold off
ylim([0 3])
datetick('x', 'mmm')
set(gca, 'YTick',[1 2], 'YTickLabel',{'Central','North'})
There are also other options, for example using the patch function. It depends on what you want to do.

6 Comments

Thank you very much!
As always, my pleasure!
May I ask for extra help ? :$
I get lost when I tried to apply the same code to obtain the same attached figure.
could you please help me with that?
I do appreciate it.
I will do my best.
My best guess is that you would need to do something like this for multiple timelines:
plot(North', ones(size(North'))*k, '-b', 'LineWidth', 5);
where ‘k’ is the y-value where you want to plot them.
As always, my pleasure.
Thanks like a bunch!
As always, my pleasure!

Sign in to comment.

More Answers (1)

Farhan ul haq
Farhan ul haq on 11 Feb 2020

I want to create plot like this

Asked:

on 25 Aug 2019

Answered:

on 11 Feb 2020

Community Treasure Hunt

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

Start Hunting!