首页 文章

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

提问于
浏览
1

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

日期时间变量集的初始格式是"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

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

相关问题