Problem with 'keeplimits' for dates on figure x-axis
8 views (last 30 days)
Show older comments
Hi,
I've search for an answer to my question but I still cannot get this to work. I am trying to plot data on a figure with the date on the x-axis. My problem is that the figure extends beyond the x-axis limits, even if I am using 'keeplimits'. The figure keeps showing an x-axis extending from May 11 to Oct 24 instead of the May 20 to Oct 22
t = datetime(2009,05,19) + caldays(1:156);
Ya = plot (t, wtddata(:,1),'-','LineWidth',2);
hold on; Yb = plot (t, wtddata(:,2),'-','LineWidth',2); hold off;
datetick('x','mmm','keeplimits')
Any help would be appreciated.
Thanks
0 Comments
Accepted Answer
Campion Loong
on 5 Aug 2015
Edited: Campion Loong
on 5 Aug 2015
Hi Luc,
I see that you are utilizing the datetime datatype introduced in R2014b. MATLAB picks an optimal set of ticks and labels when you plot a datetime array.
In case - such as yours - when MATLAB's optimal set of ticks is not the most suitable, you may pan and/or zoom the plot to get your desired layout. MATLAB will automatically update the ticks and labels to match the new limits after panning/zooming.
Most importantly, only use datetick when you are plotting dates and times represented in numeric values that are serial date numbers, rather than datetime arrays.
Campion
2 Comments
Brendan Hamm
on 6 Aug 2015
After an answer has been accepted, it is best to ask a new question in a new thread to get a timely response. That being said there is a way to use datetimes and change the Format displayed when you call the plot function. However, to change the location of the ticks on the x-axis you need to use MATLAB serial date numbers:
d = datetime('01-Jan-2015') + days(0:10:50);
y = randn(size(d));
ax = axes;
plot(d,x,'DatetimeTickFormat','MMM');
numMonths = month(between(d(1),d(end)));
xTick = datetime('01-Jan-2015') + calmonths(0:numMonths)
xTick = datenum(xTick);
ax.XTick = xTick;
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!