How to label dates on X-axis as string on monthly time step?

4 views (last 30 days)
Hello, I would like to see dates on axis as a string in a month-year format with jumping steps for figure enhancement. Here is my code so far but when I tried to execute it, it generates year1 with steps 1,2 3 (see the plot).
Date=unique(cellstr(datestr((datenum('1981-01-01', 'yyyy-mm-dd'):datenum('2010-12-31', 'yyyy-mm-dd'))', 'yyyy-mm')));
figure();
hold on
fill([(1:360) fliplr(1:360)],[Gauge4(:,3)' fliplr(Gauge4(:,2)')],'c','FaceColor',[0.83 0.82 0.78],'EdgeColor',[0.83 0.82 0.78]);
plot(Gauge4(:,1),'-r','LineWidth',1.25);
plot(Gauge4(:,4),'--b','LineWidth',1.25);
axis tight
set(gca,'XTick',1:36:360,'XTickLabel',Date);

Answers (2)

KL
KL on 1 Nov 2017
You already have year and month on the xaxis of the attached image but anyway, you could directly plot with the datetime on xaxis,
plot(Date,guage(:,3))
datetick('x','yyyy-mm')
  1 Comment
Hydro
Hydro on 2 Nov 2017
Hello KL, Yes, the dates shown are month year however, its not what i want. I have 30 years data on monthly time step (1981-2010) equalling to 360 data points. In my code above, i am providing 36 months spacing for each tick- so the first tick should have x-axis value of Jan-1981, the second Jan 1984, the third Jan 1987 and so on. In total i would get 360/36=10 ticks with its corresponding date on the x-axis. Hope this is clear now? I also tried your code, it didnt work. Thanks for looking at the code though.

Sign in to comment.


Nurhaida Nurhaida
Nurhaida Nurhaida on 1 Nov 2019
Hi..KL..try this
set(gca,'XTick',1:36:360,'XTickLabel',Date(1:36:360));
Nur

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!