Problem with 'keeplimits' for dates on figure x-axis
8 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Campion Loong
2015-8-5
编辑:Campion Loong
2015-8-5
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 个评论
Brendan Hamm
2015-8-6
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;
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!