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

Matlab 如何调整时间图上的X轴标签?,matlab,date,plot,matlab-figure,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

我试图找到一个解决方案,绘制一个数据系列和一个日期时间变量集

日期时间变量集的初始格式为“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以天为单位的事实来生成标签:

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)

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

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)

经过小小的调整后工作得非常好。我会的,但我没有足够的声誉去做那件事,我试过了(经过小小的调整后,效果非常好。我会的,但我没有足够的声誉去做,我试过了。)(