Fill area in plot with datetime

10 views (last 30 days)
Frank
Frank on 29 Feb 2016
Answered: Peter Perkins on 7 Nov 2016
The following simplified example illustrates my problem:
Let
DateStrings = {'2014-01';'2014-02';'2014-03';'2014-04';'2014-05';'2014-06'};
X = datetime(DateStrings,'InputFormat','y-M');
Y = 1:6;
The following works, but is not exactly what I need:
plot(X,Y, 'DatetimeTickFormat','M-yyyy');
What I need is something like this:
area(X,Y, 'DatetimeTickFormat','M-yyyy');
This does not work, because "Input arguments must be numeric".
Does anybody know how to put dates on the x-axis with "area" or fill the area between 0 and Y with plot?

Accepted Answer

Image Analyst
Image Analyst on 29 Feb 2016
Don't use X. Just create your cell array DateStrings the way you want it and then do this:
area(1:length(DateStrings),Y);
ax = gca;
ax.XTickLabel = DateStrings;
ax.XTickLabelRotation = -75;
  3 Comments
Image Analyst
Image Analyst on 29 Feb 2016
What's not correct about it? Like I said "Just create your cell array DateStrings the way you want it" <=== Did you do that? Or not?
Frank
Frank on 1 Mar 2016
Of course, I did that ....... not ;-). Thanks for your answers!

Sign in to comment.

More Answers (3)

Peter Perkins
Peter Perkins on 7 Nov 2016
Frank, if you have access to the most recent release, R2016b, area does now work with datetimes:
area(X,Y);
h = gca; h.XAxis.TickLabelFormat = 'M-yyyy'
The default labels are month name, with year as the "secondary label", so you'd need to set XAxis.TickLabelFormat to get exactly the labels you want. Notice that using XAxis.TickLabelFormat is a bit different than in previous releases. That new property is supported for all datetime plots, and most (maybe even all, I forget) plotting now works with datetimes and durations. DatetimeTickFormat is still supported in the plot function, but moving forward you should use XAxis.TickLabelFormat.
Hope this helps.

Einar
Einar on 3 Nov 2016
An alternative solution:
area(datenum(X),Y)
datetick('x', 'mm-yyyy')

Frank
Frank on 3 Nov 2016
So simple! Works perfect! Thank you very much.

Community Treasure Hunt

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

Start Hunting!