Fill area in plot with datetime
11 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
Image Analyst
2016 年 2 月 29 日
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 件のコメント
Image Analyst
2016 年 2 月 29 日
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?
その他の回答 (3 件)
Peter Perkins
2016 年 11 月 7 日
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.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Axis Labels についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!