
Properly put date labels with OuterPosition and datetick
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Mehmed Saad
il 29 Apr 2020
Modificato: Mehmed Saad
il 29 Apr 2020
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')))

1 Commento
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!