Adding date and time on x axes in a plot

14 views (last 30 days)
sc
sc on 7 Apr 2021
Answered: Star Strider on 7 Apr 2021
Good morning,
is it possible to create a plot on Matlab, inserting on the x-axis both the date and time coming from two different columns of a table, and on the y-axis another variable?
Thank you!

Answers (1)

Star Strider
Star Strider on 7 Apr 2021
There are (at least) two options, depending on what the dates and time are, specifically with respect to the type of arrays they are.
Using datetime arrays:
dates = repmat(datetime([2021 04 08]),12,1);
times = datetime('00:00:00','Format','HH:mm:ss')+hours(0:11).';
datestimes = dates + timeofday(times);
figure
plot(datestimes, sin(0:numel(datestimes)-1)*2*pi/numel(datestimes))
grid
Or, using essentially the same data (for comparison) using datenum arrays:
dndates = datenum(dates);
dntimes = datenum(times);
dndatestimes = fix(dndates) + rem(dntimes,1);
figure
plot(dndatestimes, sin(0:numel(datestimes)-1)*2*pi/numel(datestimes))
grid
set(gca, 'XTick',dndatestimes)
datetick('x', 'yyyy/mm/dd HH:MM:SS', 'keepticks')
Extracting the original datetime variables from a table array is straightforward, so I left that part out.

Tags

Community Treasure Hunt

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

Start Hunting!