Draw vertical lines which have constant interval
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, I attached time(datetime, 1980.1.1~2015.12.31) and set y value as P=[1:432].
* I convert date form.I also attached original time form(original_time)
time = datetime(original_form,'ConvertFrom','datenum');
If i draw the plot, i got below figure.
plot(time,P);
datetick('x','yy/mm','keeplimits');
grid on
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1143285/image.png)
And i want to add constant vertical line on every March.
I couldn't fine proper method. Please help me :(
2 commentaires
Réponse acceptée
VBBV
le 3 Oct 2022
Modifié(e) : VBBV
le 3 Oct 2022
P=[1:432]
original_form = load('original_time.mat')
time = datetime(original_form.t,'ConvertFrom','datenum')
plot(time,P);
%datetick('x','yy/mm','keeplimits');
grid on
march = time(1) + calmonths(2) : calyears(1) : time(end)
xticks(march)
xline(march,'linestyle','--')
3 commentaires
VBBV
le 3 Oct 2022
Modifié(e) : VBBV
le 3 Oct 2022
Following @Walter Roberson answer, you could change the xticks for the plot axis and then draw xline as usual for every march month
VBBV
le 3 Oct 2022
Modifié(e) : VBBV
le 3 Oct 2022
@Walter Roberson you're right. sorry, i overlooked that line. thanks for it.
Plus de réponses (1)
Walter Roberson
le 3 Oct 2022
Modifié(e) : Walter Roberson
le 3 Oct 2022
time = datetime(original_form,'ConvertFrom','datenum');
plot(time, P);
firstmarch = dateshift(time(1), 'start', 'year') + calmonths(2);
lastmarch = dateshift(time(end), 'start', year') + calmonths(2);
marchs = firstmarch : calmonths(12) : lastmarch;
xline(marchs)
Voir également
Catégories
En savoir plus sur Title dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!