如何调整时间图上的 X 轴标签?

How to adjust the X axis labels on a time plot?

我正在尝试找到一个解决方案来绘制数据系列与日期时间变量集。

日期时间变量集的初始格式为“01/01/2015 01:10:00”,因此我将它们转换为更好的格式以使用 datenum,如下所示:

% Original Date Time Variable - Data.datetime.str(j,1:19)

Auxiliar.formatIn = 'dd/mm/yyyy HH:MM:SS';
for j = 1:length(Data.time)
   Data.datetime.num(j,1) = datenum(Data.datetime.str(j,1:19), Auxiliar.formatIn);
end

之后,可以使用以下方法绘制所有内容:

% Original Data Series - Data.anem1.max

plot(Data.datetime.num, Data.anem1.max)
labels = datestr(Data.datetime.num, 6);
set(gca, 'XTick', Data.datetime.num);
set(gca, 'XTickLabel', labels);

但结果是这里显示的结果:

x 轴上的高密度标签对我没有好处,因为不可能看到任何东西,例如数据系列的某些点共享同一天。

我应该如何继续只显示同一天一次,将绘图限制为一定数量的标签?

您可以使用 MATLAB datenums 以天为单位的事实来生成您的标签:

days = [floor(min(Data.datetime.num)):ceil(max(Data.datetime.num))]

labels = datestr(days, Auxiliar.formatIn)

plot(Data.datetime.num, Data.anem1.max)
set(gca, 'XTick', days);
set(gca, 'XTickLabel', labels);

days 将是一个整数数组,表示从数据开始前的午夜到结束后的午夜之间的天数。如果你想要中午而不是午夜,你可以 days = days + 0.5。您可能还想用输出格式方面适合您的内容替换 datestr(days(i), Auxiliar.formatIn)