Properly put date labels with OuterPosition and datetick
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm trying to change labels on x axis to be from 24/2/2020 to today (actually, at least 1 day after today, otherwise the curve will touch the y axis on the right). I have to use subplot since I have other plots, and I have to use OuterPosition (or similar?) since the figure contains also annotations.
The following code
subplot(3,2,1)
past = datenum('02-24-2020');
present = datenum(datetime('today')+1); % +1 so that curve won't touch y axis on right
plot(linspace(past,present,65), 1:65)
set(gca, 'OuterPosition',[.1 .1 .4 .3], 'XLim',[past present])
datetick('x','dd/mm','keepticks')
produces this
which is not correct, since it cuts data on both on left and on right. The result doesn't change by removing the subplot command.
Even if I remove the OuterPosition option from set, the result doesn't change.
If i remove both subplot and OuterPosition, the result improves a bit, but it is still wrong
How to properly set the x labels?
This is my matlab version
댓글 수: 0
채택된 답변
Mehmed Saad
2020년 4월 29일
편집: Mehmed Saad
2020년 4월 29일
You can define xtick and xticklabel by yourself
subplot(3,2,1)
past = datenum('02-24-2020');
present = datenum(datetime('today')+1); % +1 so that curve won't touch y axis on right
plot(linspace(past,present,65), 1:65)
Suppose i want 5 ticks between past and present
tick_pos = linspace(past,present,5);
Set xtick property equal to tick_pos. and for xticklabels convert tick_pos to datestr and then to cell.
set(gca, 'OuterPosition',[.1 .1 .4 .3],'XLim',[past present],...
'XTick',tick_pos,'XTickLabel',cellstr(datestr(tick_pos,'dd/mm')))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!