How do I regulate datetime x-axis when using subplots?

7 次查看(过去 30 天)
So I'm formatting plots by year into a subplot but I keep on having about 1/4 of the subplot's x-axis be completely wrong. There's only four ticks instead of the twelve I need. The four ticks are also in the completely wrong place, April is in October for example.
Here's the part of my code I'm concerned with:
subplot(4,2,j)
pcolor(datetime(timedata,'ConvertFrom','datenum'),data1,data2)
xstart = datetime(iyr(j),01,1);
xend = datetime(iyr(j),12,31,23,59,59);
xlim([xstart,xend])
xtickformat("MM")
xticklabels(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])
In this case, xlim seems to be the problem but I need it to regulate other subplots.
Any ideas on why this is happening and how to fix it? Thank you!
  2 个评论
Diego
Diego 2022-7-21
编辑:Diego 2022-7-21
In the picture, you can slide right and it shows the incorrect format I'm getting.

请先登录,再进行评论。

采纳的回答

Cris LaPierre
Cris LaPierre 2022-7-21
Thank you.
Does your timedata correspond to your ticklabels? Why not use xtickformat('MMM') instead of manually specifying the xtick labels?
timedata = datetime(2021,1:12,1);
pcolor(timedata,rand(10,1),rand(10,12))
xstart = datetime(2021,01,1);
xend = datetime(2021,12,31,23,59,59);
xlim([xstart,xend])
xtickformat("MMM")
  3 个评论
Steven Lord
Steven Lord 2022-7-21
What does xticks return for the axes that only has four tick labels shown?
plot(1:10);
xticks(1:3:10)
xticklabels(string(1:10))
whereAreTheTicksLocated = xticks
whereAreTheTicksLocated = 1×4
1 4 7 10
That's correct based on my previous call to xticks.
Cris LaPierre
Cris LaPierre 2022-7-21
The number of ticks used are automatically chosen. You can override this by specifying the xtick locations manually using xticks.
xticks(xstart:calmonths(1):xend)

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by