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

时间:2015-10-20 13:50:48

标签: matlab date plot matlab-figure

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

日期时间变量集的初始格式是“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轴上的高密度标签对我没有好处,因为例如,不可能看到任何内容和数据系列的某些点共享。

我应该如何继续只在同一天展示一次,将情节限制在一定数量的标签上?

1 个答案:

答案 0 :(得分:0)

您可以使用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)替换为适合您的内容。