Problem with 'keeplimits' for dates on figure x-axis
조회 수: 7 (최근 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개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Calendar에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!